diff --git a/auxiliary.go b/auxiliary.go deleted file mode 100644 index 2047118..0000000 --- a/auxiliary.go +++ /dev/null @@ -1,41 +0,0 @@ -package slinguist - -var AuxiliaryLanguages = map[string]bool{ - "Other": true, - "XML": true, - "YAML": true, - "TOML": true, - "INI": true, - "JSON": true, - "TeX": true, - "Public Key": true, - "AsciiDoc": true, - "AGS Script": true, - "VimL": true, - "Diff": true, - "CMake": true, - "fish": true, - "Awk": true, - "Graphviz (DOT)": true, - "Markdown": true, - "desktop": true, - "XSLT": true, - "SQL": true, - "RMarkdown": true, - "IRC log": true, - "reStructuredText": true, - "Twig": true, - "CSS": true, - "Batchfile": true, - "Text": true, - "HTML+ERB": true, - "HTML": true, - "Gettext Catalog": true, - "Smarty": true, - "Raw token data": true, -} - -func IsAuxiliaryLanguage(lang string) bool { - _, ok := AuxiliaryLanguages[lang] - return ok -} diff --git a/common.go b/common.go index 89f0f5b..0de8da2 100644 --- a/common.go +++ b/common.go @@ -1,957 +1,56 @@ package slinguist -// Extracted from github/linguist. -// This one-liner prints the latest version: -// curl https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml | python -c 'from collections import defaultdict; import os; import json; import yaml; l = yaml.load(os.sys.stdin.read()); exts = reduce(lambda acc, x: acc + x, [v.get("extensions", []) for k, v in l.items()], []); m = {ext: [k for k, v in l.items() if ext in v.get("extensions", [])] for ext in exts}; print "package utils\n\nvar LanguagesByExtension = map[string][]string{\n"+ json.dumps(m).replace("]", "}").replace("},", "},\n").replace("[", "{")[1:-1] + ",\n}\n"' | gofmt -var LanguagesByExtension = map[string][]string{ - ".obj": {"Wavefront Object"}, - ".sage": {"Sage"}, - ".tmux": {"Shell"}, - ".kt": {"Kotlin"}, - ".builder": {"Ruby"}, - ".lfe": {"LFE"}, - ".arpa": {"DNS Zone"}, - ".plsql": {"PLSQL"}, - ".nsh": {"NSIS"}, - ".sh-session": {"ShellSession"}, - ".ma": {"Mathematica"}, - ".raw": {"Raw token data"}, - ".moon": {"MoonScript"}, - ".rl": {"Ragel in Ruby Host"}, - ".ebuild": {"Gentoo Ebuild"}, - ".targets": {"XML"}, - ".lid": {"Dylan"}, - ".rb": {"Ruby"}, - ".iss": {"Inno Setup"}, - ".pony": {"Pony"}, - ".thor": {"Ruby"}, - ".xml.dist": {"XML"}, - ".resx": {"XML"}, - ".bmx": {"BlitzMax"}, - ".asd": {"Common Lisp"}, - ".geojson": {"JSON"}, - ".bro": {"Bro"}, - ".geo": {"GLSL"}, - ".mkdn": {"Markdown"}, - ".irclog": {"IRC log"}, - ".rs.in": {"Rust"}, - ".rkt": {"Racket"}, - ".bb": {"BitBake", "BlitzBasic"}, - ".rd": {"R"}, - ".mms": {"Module Management System"}, - ".glslv": {"GLSL"}, - ".el": {"Emacs Lisp"}, - ".nuspec": {"XML"}, - ".csx": {"C#"}, - ".rss": {"XML"}, - ".eh": {"eC"}, - ".c++objdump": {"Cpp-ObjDump"}, - ".sublime-settings": {"JavaScript"}, - ".ec": {"eC"}, - ".filters": {"XML"}, - ".csl": {"XML"}, - ".self": {"Self"}, - ".pytb": {"Python traceback"}, - ".ex": {"Elixir"}, - ".csd": {"Csound Document"}, - ".xliff": {"XML"}, - ".pm6": {"Perl6"}, - ".ant": {"XML"}, - ".pde": {"Processing"}, - ".pm": {"Perl6", "Perl"}, - ".pl": {"Perl6", "Prolog", "Perl"}, - ".rabl": {"Ruby"}, - ".f03": {"FORTRAN"}, - ".ph": {"Perl"}, - ".handlebars": {"Handlebars"}, - ".asmx": {"ASP"}, - ".chs": {"C2hs Haskell"}, - ".pb": {"PureBasic"}, - ".perl": {"Perl"}, - ".gtpl": {"Groovy"}, - ".py": {"Python"}, - ".djs": {"Dogescript"}, - ".xml": {"XML"}, - ".xmi": {"XML"}, - ".pp": {"Puppet", "Pascal"}, - ".ps": {"PostScript"}, - ".htm": {"HTML"}, - ".gsx": {"Gosu"}, - ".fxml": {"XML"}, - ".sagews": {"Sage"}, - ".sig": {"Standard ML"}, - ".stTheme": {"XML"}, - ".vba": {"Visual Basic"}, - ".gsp": {"Groovy Server Pages"}, - ".tst": {"Scilab", "GAP"}, - ".gst": {"Gosu"}, - ".sparql": {"SPARQL"}, - ".lagda": {"Literate Agda"}, - ".ily": {"LilyPond"}, - ".dita": {"XML"}, - ".watchr": {"Ruby"}, - ".vbs": {"Visual Basic"}, - ".prg": {"xBase"}, - ".ihlp": {"Stata"}, - ".pri": {"QMake"}, - ".ecr": {"HTML+ECR"}, - ".scrbl": {"Racket"}, - ".pro": {"INI", "Prolog", "QMake", "IDL"}, - ".axd": {"ASP"}, - ".txt": {"Text"}, - ".minid": {"MiniD"}, - ".maxpat": {"Max"}, - ".hh": {"Hack", "C++"}, - ".jinja": {"HTML+Django"}, - ".db2": {"SQLPL"}, - ".xsjs": {"JavaScript"}, - ".xojo_report": {"Xojo"}, - ".p6": {"Perl6"}, - ".escript": {"Erlang"}, - ".p6l": {"Perl6"}, - ".p6m": {"Perl6"}, - ".muf": {"MUF"}, - ".viw": {"SQL"}, - ".exs": {"Elixir"}, - ".qml": {"QML"}, - ".flex": {"JFlex"}, - ".sbt": {"Scala"}, - ".tml": {"XML"}, - ".nginxconf": {"Nginx"}, - ".xaml": {"XML"}, - ".zcml": {"XML"}, - ".urdf": {"XML"}, - ".hbs": {"Handlebars"}, - ".nit": {"Nit"}, - ".clp": {"CLIPS"}, - ".wiki": {"MediaWiki"}, - ".reb": {"Rebol"}, - ".ado": {"Stata"}, - ".red": {"Red"}, - ".adb": {"Ada"}, - ".ada": {"Ada"}, - ".bats": {"Shell"}, - ".xpy": {"Python"}, - ".hxsl": {"Haxe"}, - ".f90": {"FORTRAN"}, - ".ox": {"Ox"}, - ".wsf": {"XML"}, - ".oz": {"Oz"}, - ".ads": {"Ada"}, - ".xpl": {"XProc"}, - ".adp": {"Tcl"}, - ".graphql": {"GraphQL"}, - ".rktl": {"Racket"}, - ".3m": {"Groff"}, - ".owl": {"Web Ontology Language"}, - ".tmSnippet": {"XML"}, - ".vue": {"Vue"}, - ".pir": {"Parrot Internal Representation"}, - ".yaml": {"YAML"}, - ".axs": {"NetLinx"}, - ".rst.txt": {"reStructuredText"}, - ".wsgi": {"Python"}, - ".hlsl": {"HLSL"}, - ".lmi": {"Python"}, - ".command": {"Shell"}, - ".vert": {"GLSL"}, - ".objdump": {"ObjDump"}, - ".yml": {"YAML"}, - ".fr": {"Text", "Frege", "Forth"}, - ".pig": {"PigLatin"}, - ".phtml": {"HTML+PHP"}, - ".ml4": {"OCaml"}, - ".bas": {"Visual Basic"}, - ".fy": {"Fancy"}, - ".fx": {"HLSL", "FLUX"}, - ".wxi": {"XML"}, - ".wxl": {"XML"}, - ".gap": {"GAP"}, - ".aug": {"Augeas"}, - ".ipynb": {"Jupyter Notebook"}, - ".diff": {"Diff"}, - ".wl": {"Mathematica"}, - ".cljs.hl": {"Clojure"}, - ".wxs": {"XML"}, - ".tsx": {"XML", "TypeScript"}, - ".f08": {"FORTRAN"}, - ".rst": {"reStructuredText"}, - ".mll": {"OCaml"}, - ".mli": {"OCaml"}, - ".grace": {"Grace"}, - ".cljc": {"Clojure"}, - ".rsx": {"R"}, - ".txl": {"TXL"}, - ".cljx": {"Clojure"}, - ".sublime-syntax": {"YAML"}, - ".pmod": {"Pike"}, - ".cobol": {"COBOL"}, - ".mly": {"OCaml"}, - ".opa": {"Opa"}, - ".storyboard": {"XML"}, - ".cljs": {"Clojure"}, - ".feature": {"Cucumber"}, - ".rsh": {"RenderScript"}, - ".arc": {"Arc"}, - ".vshader": {"GLSL"}, - ".matah": {"Stata"}, - ".ts": {"XML", "TypeScript"}, - ".xojo_window": {"Xojo"}, - ".tu": {"Turing"}, - ".bsv": {"Bluespec"}, - ".tm": {"Tcl"}, - ".mo": {"Modelica"}, - ".rhtml": {"RHTML"}, - ".xib": {"XML"}, - ".tf": {"HCL"}, - ".clixml": {"XML"}, - ".smt": {"SMT"}, - ".applescript": {"AppleScript"}, - ".rviz": {"YAML"}, - ".factor": {"Factor"}, - ".eclxml": {"ECL"}, - ".sma": {"SourcePawn"}, - ".fun": {"Standard ML"}, - ".sml": {"Standard ML"}, - ".axml": {"XML"}, - ".reds": {"Red"}, - ".dae": {"COLLADA"}, - ".spin": {"Propeller Spin"}, - ".bash": {"Shell"}, - ".tmCommand": {"XML"}, - ".cbx": {"TeX"}, - ".numpyw": {"NumPy"}, - ".cmake.in": {"CMake"}, - ".intr": {"Dylan"}, - ".vhdl": {"VHDL"}, - ".textile": {"Textile"}, - ".ditaval": {"XML"}, - ".vhost": {"Nginx", "ApacheConf"}, - ".tac": {"Python"}, - ".tab": {"SQL"}, - ".pov": {"POV-Ray SDL"}, - ".rno": {"Groff"}, - ".sublime-snippet": {"XML"}, - ".haml.deface": {"Haml"}, - ".rest": {"reStructuredText"}, - ".sublime-commands": {"JavaScript"}, - ".cfml": {"ColdFusion"}, - ".cp": {"Component Pascal", "C++"}, - "._coffee": {"CoffeeScript"}, - ".rebol": {"Rebol"}, - ".cs": {"C#", "Smalltalk"}, - ".ct": {"XML"}, - ".cu": {"Cuda"}, - ".cw": {"Redcode"}, - ".ch": {"Charity", "xBase"}, - ".wsdl": {"XML"}, - ".fan": {"Fantom"}, - ".ck": {"ChucK"}, - ".ahk": {"AutoHotkey"}, - ".dpatch": {"Darcs Patch"}, - ".fcgi": {"PHP", "Python", "Shell", "Perl", "Lua", "Ruby"}, - ".cc": {"C++"}, - ".yap": {"Prolog"}, - ".fancypack": {"Fancy"}, - ".1m": {"Groff"}, - ".sty": {"TeX"}, - ".cshtml": {"C#"}, - ".bf": {"HyPhy", "Brainfuck"}, - ".cl2": {"Clojure"}, - ".mcr": {"MAXScript"}, - ".rpy": {"Ren'Py", "Python"}, - ".vark": {"Gosu"}, - ".osm": {"XML"}, - ".upc": {"Unified Parallel C"}, - ".xojo_code": {"Xojo"}, - ".anim": {"Unity3D Asset"}, - ".smt2": {"SMT"}, - ".gms": {"GAMS"}, - ".hic": {"Clojure"}, - ".raml": {"RAML"}, - ".mawk": {"Awk"}, - ".iced": {"CoffeeScript"}, - ".pkgproj": {"XML"}, - ".dylan": {"Dylan"}, - ".em": {"EmberScript"}, - ".gml": {"XML", "Graph Modeling Language", "Game Maker Language"}, - ".dotsettings": {"XML"}, - ".ahkl": {"AutoHotkey"}, - ".ps1": {"PowerShell"}, - ".mdpolicy": {"XML"}, - ".sublime_metrics": {"JavaScript"}, - ".pwn": {"PAWN"}, - ".ldml": {"Lasso"}, - ".i7x": {"Inform 7"}, - ".clj": {"Clojure"}, - ".robot": {"RobotFramework"}, - ".1": {"Groff"}, - ".gvy": {"Groovy"}, - ".xproc": {"XProc"}, - ".cls": {"Visual Basic", "Apex", "TeX", "OpenEdge ABL"}, - ".unity": {"Unity3D Asset"}, - ".clw": {"Clarion"}, - ".opencl": {"OpenCL"}, - ".blade": {"Blade"}, - ".csv": {"CSV"}, - ".fish": {"fish"}, - ".idc": {"C"}, - ".1x": {"Groff"}, - ".ltx": {"TeX"}, - ".pac": {"JavaScript"}, - ".sch": {"Eagle", "KiCad"}, - ".php3": {"PHP"}, - ".idr": {"Idris"}, - ".mkfile": {"Makefile"}, - ".php5": {"PHP"}, - ".php4": {"PHP"}, - ".css": {"CSS"}, - ".ditamap": {"XML"}, - ".pas": {"Pascal"}, - ".grxml": {"XML"}, - ".jflex": {"JFlex"}, - ".bison": {"Bison"}, - ".a51": {"Assembly"}, - ".mtl": {"Wavefront Material"}, - ".metal": {"Metal"}, - ".opal": {"Opal"}, - ".mkdown": {"Markdown"}, - ".tcc": {"C++"}, - ".csh": {"Tcsh"}, - ".nproj": {"XML"}, - ".eps": {"PostScript"}, - ".xul": {"XML"}, - ".hb": {"Harbour"}, - ".markdown": {"Markdown"}, - ".sublime_session": {"JavaScript"}, - "._ls": {"LiveScript"}, - ".lgt": {"Logtalk"}, - ".phps": {"PHP"}, - ".hs": {"Haskell"}, - ".phpt": {"PHP"}, - ".fxh": {"HLSL"}, - ".epj": {"Ecere Projects"}, - ".hy": {"Hy"}, - ".hx": {"Haxe"}, - ".JSON-tmLanguage": {"JSON"}, - ".prefab": {"Unity3D Asset"}, - ".tex": {"TeX"}, - ".rbx": {"Ruby"}, - ".5": {"Groff"}, - ".pluginspec": {"XML", "Ruby"}, - ".yy": {"Yacc"}, - ".rbw": {"Ruby"}, - ".cl": {"OpenCL", "Cool", "Common Lisp"}, - ".es": {"JavaScript", "Erlang"}, - ".rest.txt": {"reStructuredText"}, - ".sublime-keymap": {"JavaScript"}, - ".tea": {"Tea"}, - ".eq": {"EQ"}, - ".f77": {"FORTRAN"}, - ".zmpl": {"Zimpl"}, - ".mediawiki": {"MediaWiki"}, - ".man": {"Groff"}, - ".4th": {"Forth"}, - ".pan": {"Pan"}, - ".d-objdump": {"D-ObjDump"}, - ".scxml": {"XML"}, - ".pd_lua": {"Lua"}, - ".god": {"Ruby"}, - ".hats": {"ATS"}, - ".lvproj": {"LabVIEW"}, - ".pat": {"Max"}, - ".purs": {"PureScript"}, - ".aux": {"TeX"}, - ".cproject": {"XML"}, - ".pxd": {"Cython"}, - ".creole": {"Creole"}, - ".moo": {"Mercury", "Moocode"}, - ".hpp": {"C++"}, - ".mod": {"Modula-2", "XML", "Linux Kernel Module", "AMPL"}, - ".pxi": {"Cython"}, - ".auk": {"Awk"}, - ".befunge": {"Befunge"}, - ".bib": {"TeX"}, - ".pd": {"Pure Data"}, - ".jsb": {"JavaScript"}, - ".mata": {"Stata"}, - ".3qt": {"Groff"}, - ".xhtml": {"HTML"}, - ".mako": {"Mako"}, - ".mask": {"Mask"}, - ".eex": {"HTML+EEX"}, - ".duby": {"Mirah"}, - ".coq": {"Coq"}, - ".scss": {"SCSS"}, - ".emacs": {"Emacs Lisp"}, - ".lex": {"Lex"}, - ".cob": {"COBOL"}, - ".toml": {"TOML"}, - ".ll": {"LLVM"}, - ".adoc": {"AsciiDoc"}, - ".ooc": {"ooc"}, - ".json": {"JSON"}, - ".tpp": {"C++"}, - ".au3": {"AutoIt"}, - ".vcl": {"VCL"}, - ".grt": {"Groovy"}, - ".lua": {"Lua"}, - ".vxml": {"XML"}, - ".6": {"Groff"}, - ".tpl": {"Smarty"}, - ".numpy": {"NumPy"}, - ".7": {"Groff"}, - ".sh.in": {"Shell"}, - ".odd": {"XML"}, - ".pyde": {"Python"}, - ".emberscript": {"EmberScript"}, - ".plist": {"XML"}, - ".sexp": {"Common Lisp"}, - ".pt": {"XML"}, - ".toc": {"World of Warcraft Addon Data", "TeX"}, - ".pod": {"Perl", "Pod"}, - ".ni": {"Inform 7"}, - ".mathematica": {"Mathematica"}, - ".ruby": {"Ruby"}, - ".sthlp": {"Stata"}, - ".g4": {"ANTLR"}, - ".dyl": {"Dylan"}, - ".pot": {"Gettext Catalog"}, - ".coffee": {"CoffeeScript"}, - ".nim": {"Nimrod"}, - ".cirru": {"Cirru"}, - ".kicad_pcb": {"KiCad"}, - ".groovy": {"Groovy"}, - ".nse": {"Lua"}, - ".ron": {"Markdown"}, - ".ls": {"LiveScript", "LoomScript"}, - ".lasso9": {"Lasso"}, - ".lasso8": {"Lasso"}, - ".xqy": {"XQuery"}, - ".asciidoc": {"AsciiDoc"}, - ".sublime-menu": {"JavaScript"}, - ".ecl": {"ECLiPSe", "ECL"}, - ".E": {"E"}, - ".myt": {"Myghty"}, - ".agc": {"Apollo Guidance Computer"}, - ".xtend": {"Xtend"}, - ".dpr": {"Pascal"}, - ".latte": {"Latte"}, - ".xqm": {"XQuery"}, - ".xql": {"XQuery"}, - ".ivy": {"XML"}, - ".gf": {"Grammatical Framework"}, - ".numsc": {"NumPy"}, - ".shader": {"GLSL"}, - ".hcl": {"HCL"}, - ".go": {"Go"}, - ".gi": {"GAP"}, - ".yang": {"YANG"}, - ".gv": {"Graphviz (DOT)"}, - ".sfproj": {"XML"}, - ".gp": {"Gnuplot"}, - ".njs": {"JavaScript"}, - ".gs": {"JavaScript", "Gosu"}, - ".lslp": {"LSL"}, - ".com": {"DIGITAL Command Language"}, - ".cy": {"Cycript"}, - ".scpt": {"AppleScript"}, - ".rg": {"Rouge"}, - ".boot": {"Clojure"}, - ".lasso": {"Lasso"}, - ".rs": {"RenderScript", "Rust"}, - ".flux": {"FLUX"}, - ".slim": {"Slim"}, - ".pike": {"Pike"}, - ".ru": {"Ruby"}, - ".rbuild": {"Ruby"}, - ".wlt": {"Mathematica"}, - ".1in": {"Groff"}, - ".hqf": {"SQF"}, - ".dats": {"ATS"}, - ".asset": {"Unity3D Asset"}, - ".hlsli": {"HLSL"}, - ".zpl": {"Zimpl"}, - ".prc": {"SQL"}, - ".for": {"Forth", "Formatted", "FORTRAN"}, - ".mkd": {"Markdown"}, - ".ccp": {"COBOL"}, - ".cr": {"Crystal"}, - ".ijs": {"J"}, - ".emacs.desktop": {"Emacs Lisp"}, - ".xojo_toolbar": {"Xojo"}, - ".x10": {"X10"}, - ".ttl": {"Turtle"}, - ".doh": {"Stata"}, - ".ux": {"XML"}, - ".gawk": {"Awk"}, - ".twig": {"Twig"}, - ".ur": {"UrWeb"}, - ".mumps": {"M"}, - ".darcspatch": {"Darcs Patch"}, - ".bbx": {"TeX"}, - ".ui": {"XML"}, - ".r3": {"Rebol"}, - ".r2": {"Rebol"}, - ".ksh": {"Shell"}, - ".ccxml": {"XML"}, - ".dot": {"Graphviz (DOT)"}, - ".xproj": {"XML"}, - ".sls": {"Scheme", "SaltStack"}, - ".vbproj": {"XML"}, - ".sql": {"PLpgSQL", "PLSQL", "SQL", "SQLPL"}, - ".hxx": {"C++"}, - ".thrift": {"Thrift"}, - ".yaml-tmlanguage": {"YAML"}, - ".ktm": {"Kotlin"}, - ".dfm": {"Pascal"}, - ".litcoffee": {"Literate CoffeeScript"}, - ".aj": {"AspectJ"}, - ".kts": {"Kotlin"}, - ".sld": {"Scheme"}, - ".icl": {"Clean"}, - ".topojson": {"JSON"}, - ".cjsx": {"CoffeeScript"}, - ".cdf": {"Mathematica"}, - ".ik": {"Ioke"}, - ".xrl": {"Erlang"}, - ".io": {"Io"}, - ".f": {"Forth", "FORTRAN"}, - ".sqf": {"SQF"}, - ".cmd": {"Batchfile"}, - ".dyalog": {"APL"}, - ".lisp": {"NewLisp", "Common Lisp"}, - ".sublime-mousemap": {"JavaScript"}, - ".al": {"Perl"}, - ".bones": {"JavaScript"}, - ".jscad": {"JavaScript"}, - ".vala": {"Vala"}, - ".druby": {"Mirah"}, - ".psc": {"Papyrus"}, - ".dlm": {"IDL"}, - ".cxx-objdump": {"Cpp-ObjDump"}, - ".xojo_menu": {"Xojo"}, - ".pkb": {"PLSQL"}, - ".lookml": {"LookML"}, - ".boo": {"Boo"}, - ".h++": {"C++"}, - ".pasm": {"Parrot Assembly"}, - ".dart": {"Dart"}, - ".cxx": {"C++"}, - ".ceylon": {"Ceylon"}, - ".pks": {"PLSQL"}, - ".bat": {"Batchfile"}, - ".desktop.in": {"desktop"}, - ".srt": {"SRecode Template", "SubRip Text"}, - ".c++-objdump": {"Cpp-ObjDump"}, - ".lol": {"LOLCODE"}, - ".dtx": {"TeX"}, - ".gco": {"G-code"}, - ".es6": {"JavaScript"}, - ".pbi": {"PureBasic"}, - ".qbs": {"QML"}, - ".cats": {"C"}, - ".psm1": {"PowerShell"}, - ".rbuistate": {"REALbasic"}, - ".tmLanguage": {"XML"}, - ".glf": {"Glyph"}, - ".irbrc": {"Ruby"}, - ".tmPreferences": {"XML"}, - ".tla": {"TLA"}, - ".vrx": {"GLSL"}, - ".rake": {"Ruby"}, - ".omgrofl": {"Omgrofl"}, - ".org": {"Org"}, - ".tmTheme": {"XML"}, - ".cql": {"SQL"}, - ".xslt": {"XSLT"}, - ".apl": {"APL"}, - ".lpr": {"Pascal"}, - ".vapi": {"Vala"}, - ".wlua": {"Lua"}, - ".uc": {"UnrealScript"}, - ".edn": {"edn"}, - ".hrl": {"Erlang"}, - ".maxproj": {"Max"}, - ".builds": {"XML"}, - ".veo": {"Verilog"}, - ".nbp": {"Mathematica"}, - ".vh": {"SystemVerilog"}, - ".udo": {"Csound"}, - ".ins": {"TeX"}, - ".pogo": {"PogoScript"}, - ".udf": {"SQL"}, - ".psd1": {"PowerShell"}, - ".bzl": {"Python"}, - ".glade": {"XML"}, - ".cppobjdump": {"Cpp-ObjDump"}, - ".inc": {"PHP", "HTML", "SourcePawn", "Assembly", "PAWN", "SQL", "Pascal", "POV-Ray SDL", "C++"}, - ".ini": {"INI"}, - ".vhd": {"VHDL"}, - ".webidl": {"WebIDL"}, - ".sublime-project": {"JavaScript"}, - ".inl": {"C++"}, - ".ino": {"Arduino"}, - ".frg": {"GLSL"}, - ".zsh": {"Shell"}, - ".decls": {"BlitzBasic"}, - ".xacro": {"XML"}, - ".frm": {"Visual Basic"}, - ".ddl": {"SQL"}, - ".cson": {"CoffeeScript"}, - ".cake": {"CoffeeScript", "C#"}, - ".ssjs": {"JavaScript"}, - ".frt": {"Forth"}, - ".dcl": {"Clean"}, - ".rbres": {"REALbasic"}, - ".sce": {"Scilab"}, - ".ascx": {"ASP"}, - ".frx": {"Visual Basic"}, - ".tcl": {"Tcl"}, - ".agda": {"Agda"}, - ".yrl": {"Erlang"}, - ".eclass": {"Gentoo Eclass"}, - ".3in": {"Groff"}, - ".mustache": {"HTML+Django"}, - ".fpp": {"FORTRAN"}, - ".geom": {"GLSL"}, - ".fsproj": {"XML"}, - ".json5": {"JSON5"}, - ".scaml": {"Scaml"}, - ".c++": {"C++"}, - ".jade": {"Jade"}, - ".gradle": {"Gradle"}, - ".mt": {"Mathematica"}, - ".mu": {"mupad"}, - ".ms": {"MAXScript", "GAS", "Groff"}, - ".f95": {"FORTRAN"}, - ".cpp-objdump": {"Cpp-ObjDump"}, - ".rbbas": {"REALbasic"}, - ".3x": {"Groff"}, - ".md": {"GCC Machine Description", "Markdown"}, - ".me": {"Groff"}, - ".mxt": {"Max"}, - ".apacheconf": {"ApacheConf"}, - ".ml": {"OCaml"}, - ".mm": {"Objective-C++", "XML"}, - ".mk": {"Makefile"}, - ".nawk": {"Awk"}, - ".axi.erb": {"NetLinx+ERB"}, - ".di": {"D"}, - ".orc": {"Csound"}, - ".podspec": {"Ruby"}, - ".dm": {"DM"}, - ".cmake": {"CMake"}, - ".do": {"Stata"}, - ".zep": {"Zephir"}, - ".chpl": {"Chapel"}, - ".svg": {"SVG"}, - ".props": {"XML"}, - ".podsl": {"Common Lisp"}, - ".roff": {"Groff"}, - ".svh": {"SystemVerilog"}, - ".ampl": {"AMPL"}, - ".m4": {"M4", "M4Sugar"}, - ".oxygene": {"Oxygene"}, - ".jbuilder": {"Ruby"}, - ".jsx": {"JSX"}, - ".cuh": {"Cuda"}, - ".mat": {"Unity3D Asset"}, - ".jsp": {"Java Server Pages"}, - ".jss": {"JavaScript"}, - ".jsm": {"JavaScript"}, - ".jsproj": {"XML"}, - ".mak": {"Makefile"}, - ".parrot": {"Parrot"}, - ".properties": {"INI"}, - ".mao": {"Mako"}, - ".hlean": {"Lean"}, - ".ML": {"Standard ML"}, - ".jl": {"Julia"}, - ".prw": {"xBase"}, - ".stan": {"Stan"}, - ".gcode": {"G-code"}, - ".plot": {"Gnuplot"}, - ".lsl": {"LSL"}, - ".matlab": {"Matlab"}, - ".axi": {"NetLinx"}, - ".pyp": {"Python"}, - ".zimpl": {"Zimpl"}, - ".pyt": {"Python"}, - ".pyw": {"Python"}, - ".lsp": {"NewLisp", "Common Lisp"}, - ".pyx": {"Cython"}, - ".psgi": {"Perl"}, - ".dockerfile": {"Dockerfile"}, - ".tcsh": {"Tcsh"}, - ".xojo_script": {"Xojo"}, - ".lean": {"Lean"}, - ".prolog": {"Prolog"}, - ".capnp": {"Cap'n Proto"}, - ".wisp": {"wisp"}, - ".jake": {"JavaScript"}, - ".golo": {"Golo"}, - ".nlogo": {"NetLogo"}, - ".rbmnu": {"REALbasic"}, - ".krl": {"KRL"}, - ".nsi": {"NSIS"}, - ".vhs": {"VHDL"}, - ".vht": {"VHDL"}, - ".rbfrm": {"REALbasic"}, - ".vhw": {"VHDL"}, - ".forth": {"Forth"}, - ".sublime-theme": {"JavaScript"}, - ".smali": {"Smali"}, - ".scm": {"Scheme"}, - ".sco": {"Csound Score"}, - ".pl6": {"Perl6"}, - ".sci": {"Scilab"}, - ".vhf": {"VHDL"}, - ".apib": {"API Blueprint"}, - ".scd": {"SuperCollider"}, - ".vhi": {"VHDL"}, - ".nut": {"Squirrel"}, - ".ninja": {"Ninja"}, - ".pkl": {"Pickle"}, - ".vho": {"VHDL"}, - ".syntax": {"YAML"}, - ".swift": {"Swift"}, - ".rbxs": {"Lua"}, - ".las": {"Lasso"}, - ".axs.erb": {"NetLinx+ERB"}, - ".js": {"JavaScript"}, - ".jq": {"JSONiq"}, - ".click": {"Click"}, - ".sublime-build": {"JavaScript"}, - ".aspx": {"ASP"}, - ".plb": {"PLSQL"}, - ".mss": {"CartoCSS"}, - ".sublime-workspace": {"JavaScript"}, - ".ipf": {"IGOR Pro"}, - ".mspec": {"Ruby"}, - ".gshader": {"GLSL"}, - ".pls": {"PLSQL"}, - ".http": {"HTTP"}, - ".plt": {"Gnuplot"}, - ".c-objdump": {"C-ObjDump"}, - ".eliom": {"OCaml"}, - ".lhs": {"Literate Haskell"}, - ".plx": {"Perl"}, - ".vb": {"Visual Basic"}, - ".rktd": {"Racket"}, - ".yacc": {"Yacc"}, - ".pck": {"PLSQL"}, - ".logtalk": {"Logtalk"}, - ".eliomi": {"OCaml"}, - ".cpp": {"C++"}, - ".cps": {"Component Pascal"}, - ".mirah": {"Mirah"}, - ".zone": {"DNS Zone"}, - ".cpy": {"COBOL"}, - ".erb.deface": {"HTML+ERB"}, - ".liquid": {"Liquid"}, - ".asp": {"ASP"}, - ".jsonld": {"JSONLD"}, - ".xq": {"XQuery"}, - ".proto": {"Protocol Buffer"}, - ".mmk": {"Module Management System"}, - ".ps1xml": {"XML"}, - ".fshader": {"GLSL"}, - ".asc": {"Public Key", "AsciiDoc", "AGS Script"}, - ".rq": {"SPARQL"}, - ".xc": {"XC"}, - ".xm": {"Logos"}, - ".vsh": {"GLSL"}, - ".ash": {"AGS Script"}, - ".xi": {"Logos"}, - ".csproj": {"XML"}, - ".asm": {"Assembly"}, - ".sh": {"Shell"}, - ".sj": {"Objective-J"}, - ".sl": {"Slash"}, - ".dll.config": {"XML"}, - ".volt": {"Volt"}, - ".rdoc": {"RDoc"}, - ".sc": {"SuperCollider", "Scala"}, - ".xlf": {"XML"}, - ".sp": {"SourcePawn"}, - ".tool": {"Shell"}, - ".urs": {"UrWeb"}, - ".ss": {"Scheme"}, - ".st": {"HTML", "Smalltalk"}, - ".sv": {"SystemVerilog"}, - ".cbl": {"COBOL"}, - ".iml": {"XML"}, - ".sps": {"Scheme"}, - ".sats": {"ATS"}, - ".frag": {"GLSL", "JavaScript"}, - ".kit": {"Kit"}, - ".pug": {"Jade"}, - ".sjs": {"JavaScript"}, - ".pub": {"Public Key"}, - ".html": {"HTML"}, - ".xsp.metadata": {"XPages"}, - ".eam.fs": {"Formatted"}, - ".kid": {"Genshi"}, - ".ld": {"Linker Script"}, - ".haml": {"Haml"}, - ".styl": {"Stylus"}, - ".po": {"Gettext Catalog"}, - ".fsi": {"F#"}, - ".fsh": {"GLSL"}, - ".elm": {"Elm"}, - ".nix": {"Nix"}, - ".lbx": {"TeX"}, - ".html.hl": {"HTML"}, - ".gyp": {"Python"}, - ".hsc": {"Haskell"}, - ".pascal": {"Pascal"}, - ".fsx": {"F#"}, - ".shen": {"Shen"}, - ".maxhelp": {"Max"}, - ".nqp": {"Perl6"}, - ".6pl": {"Perl6"}, - ".6pm": {"Perl6"}, - ".sass": {"Sass"}, - ".meta": {"Unity3D Asset"}, - ".brs": {"Brightscript"}, - ".mkiv": {"TeX"}, - ".vcxproj": {"XML"}, - ".rmd": {"RMarkdown"}, - ".8": {"Groff"}, - ".9": {"Groff"}, - ".scala": {"Scala"}, - ".jsfl": {"JavaScript"}, - ".mkii": {"TeX"}, - ".fs": {"GLSL", "F#", "Forth", "Filterscript"}, - ".2": {"Groff"}, - ".3": {"Groff"}, - ".4": {"Groff"}, - ".scad": {"OpenSCAD"}, - ".brd": {"Eagle", "KiCad"}, - ".glsl": {"GLSL"}, - ".no": {"Text"}, - ".gd": {"GAP", "GDScript"}, - ".nl": {"NewLisp", "NL"}, - ".rdf": {"XML"}, - ".xsl": {"XSLT"}, - "._js": {"JavaScript"}, - ".fp": {"GLSL"}, - ".nc": {"nesC"}, - ".nb": {"Text", "Mathematica"}, - ".gemspec": {"Ruby"}, - ".xsd": {"XML"}, - ".less": {"Less"}, - ".erl": {"Erlang"}, - ".ny": {"Common Lisp"}, - ".cgi": {"Python", "Shell", "Perl"}, - ".nu": {"Nu"}, - ".erb": {"HTML+ERB"}, - ".h": {"C", "Objective-C", "C++"}, - ".cljscm": {"Clojure"}, - ".j": {"Objective-J", "Jasmin"}, - ".vssettings": {"XML"}, - ".l": {"PicoLisp", "Lex", "Groff", "Common Lisp"}, - ".m": {"Mercury", "Limbo", "Objective-C", "MUF", "Mathematica", "Matlab", "M"}, - ".php": {"PHP", "Hack"}, - ".gnuplot": {"Gnuplot"}, - ".psc1": {"XML"}, - ".oxh": {"Ox"}, - ".b": {"Limbo", "Brainfuck"}, - ".c": {"C"}, - ".d": {"DTrace", "Makefile", "D"}, - ".e": {"Eiffel"}, - ".oxo": {"Ox"}, - ".g": {"G-code", "GAP"}, - ".x": {"Logos"}, - ".y": {"Yacc"}, - ".aw": {"PHP"}, - ".mxml": {"XML"}, - ".p": {"OpenEdge ABL"}, - ".nasm": {"Assembly"}, - ".r": {"Rebol", "R"}, - ".s": {"GAS"}, - ".t": {"Perl6", "Terra", "Turing", "Perl"}, - ".ston": {"STON"}, - ".v": {"Verilog", "Coq"}, - ".w": {"C"}, - ".desktop": {"desktop"}, - ".ejs": {"EJS"}, - ".gnu": {"Gnuplot"}, - ".awk": {"Awk"}, - ".x3d": {"XML"}, - ".vim": {"VimL"}, - ".sublime-completions": {"JavaScript"}, - ".asax": {"ASP"}, - ".ctp": {"PHP"}, - ".nimrod": {"Nimrod"}, - ".als": {"Alloy"}, - ".mir": {"Mirah"}, - ".lidr": {"Idris"}, - ".xquery": {"XQuery"}, - ".prefs": {"INI"}, - ".app.src": {"Erlang"}, - ".monkey": {"Monkey"}, - ".srdf": {"XML"}, - ".jelly": {"XML"}, - ".n": {"Nemerle", "Groff"}, - ".sublime-macro": {"JavaScript"}, - ".kml": {"XML"}, - ".thy": {"Isabelle"}, - ".ncl": {"Text", "NCL"}, - ".weechatlog": {"IRC log"}, - ".ashx": {"ASP"}, - ".xsjslib": {"JavaScript"}, - ".xht": {"HTML"}, - ".blade.php": {"Blade"}, - ".uno": {"Uno"}, - ".ly": {"LilyPond"}, - ".patch": {"Diff"}, - ".launch": {"XML"}, - ".mkvi": {"TeX"}, - ".xsp-config": {"XPages"}, - ".mtml": {"MTML"}, - ".xs": {"XS"}, - ".lds": {"Linker Script"}, - ".reek": {"YAML"}, - ".rbtbar": {"REALbasic"}, - ".abap": {"ABAP"}, - ".cfc": {"ColdFusion CFC"}, - ".ipp": {"C++"}, - ".vbhtml": {"Visual Basic"}, - ".cfg": {"INI"}, - ".sas": {"SAS"}, - ".ftl": {"FreeMarker"}, - ".java": {"Java"}, - ".fth": {"Forth"}, - ".cfm": {"ColdFusion"}, - ".as": {"ActionScript"}, -} - -func init() { - for _, l := range ignoredExtensions { - LanguagesByExtension[l] = []string{OtherLanguage} - } - - ExtensionsByLanguage = reverseStringListMap(LanguagesByExtension) -} - -var ExtensionsByLanguage map[string][]string - -var ignoredExtensions = []string{".asc", ".cgi", ".fcgi", ".gml", ".fx", ".vhost"} - -func GetLanguageExtensions(language string) []string { - return ExtensionsByLanguage[language] -} - const OtherLanguage = "Other" -func reverseStringListMap(input map[string][]string) (output map[string][]string) { - output = map[string][]string{} - for key, set := range input { +var ( + extensionsByLanguage map[string][]string + ignoredExtensions = map[string]bool{ + ".asc": true, ".cgi": true, ".fcgi": true, ".gml": true, ".fx": true, + ".vhost": true, + } + auxiliaryLanguages = map[string]bool{ + "Other": true, "XML": true, "YAML": true, "TOML": true, "INI": true, + "JSON": true, "TeX": true, "Public Key": true, "AsciiDoc": true, + "AGS Script": true, "VimL": true, "Diff": true, "CMake": true, "fish": true, + "Awk": true, "Graphviz (DOT)": true, "Markdown": true, "desktop": true, + "XSLT": true, "SQL": true, "RMarkdown": true, "IRC log": true, + "reStructuredText": true, "Twig": true, "CSS": true, "Batchfile": true, + "Text": true, "HTML+ERB": true, "HTML": true, "Gettext Catalog": true, + "Smarty": true, "Raw token data": true, + } +) + +func init() { + for l, _ := range ignoredExtensions { + languagesByExtension[l] = []string{OtherLanguage} + } + + extensionsByLanguage = reverseStringListMap(languagesByExtension) +} + +// GetLanguageExtensions returns the different extensions being used by the +// language. +func GetLanguageExtensions(language string) []string { + return extensionsByLanguage[language] +} + +// GetLanguage return the Language for a given filename and file content. +func GetLanguage(filename string, content []byte) string { + if lang, safe := GetLanguageByExtension(filename); safe { + return lang + } + + lang, _ := GetLanguageByContent(filename, content) + return lang +} + +func reverseStringListMap(i map[string][]string) (o map[string][]string) { + o = map[string][]string{} + for key, set := range i { for _, value := range set { - output[value] = append(output[value], key) + o[value] = append(o[value], key) } } + return } diff --git a/common_test.go b/common_test.go index 9bca36a..5cffae5 100644 --- a/common_test.go +++ b/common_test.go @@ -11,3 +11,9 @@ func Test(t *testing.T) { TestingT(t) } type TSuite struct{} var _ = Suite(&TSuite{}) + +func (s *TSuite) TestGetLanguage(c *C) { + c.Assert(GetLanguage("foo.py", []byte{}), Equals, "Python") + c.Assert(GetLanguage("foo.m", []byte(":- module")), Equals, "Mercury") + c.Assert(GetLanguage("foo.m", []byte{}), Equals, "Other") +} diff --git a/content_test.go b/content_test.go index 7662fcb..d90275a 100644 --- a/content_test.go +++ b/content_test.go @@ -4,56 +4,15 @@ import ( "fmt" "io/ioutil" "os" - "path" "path/filepath" "text/tabwriter" . "gopkg.in/check.v1" ) -func (s *TSuite) TestGetLanguageByContentH(c *C) { - s.testGetLanguageByContent(c, "Objective-C") - s.testGetLanguageByContent(c, "C++") - s.testGetLanguageByContent(c, "C") - s.testGetLanguageByContent(c, "Common Lisp") - s.testGetLanguageByContent(c, "Cool") - s.testGetLanguageByContent(c, "OpenCL") - s.testGetLanguageByContent(c, "Groff") - s.testGetLanguageByContent(c, "PicoLisp") - s.testGetLanguageByContent(c, "PicoLisp") - s.testGetLanguageByContent(c, "NewLisp") - s.testGetLanguageByContent(c, "Lex") - s.testGetLanguageByContent(c, "TeX") - s.testGetLanguageByContent(c, "Visual Basic") - s.testGetLanguageByContent(c, "Matlab") - s.testGetLanguageByContent(c, "Mathematica") - s.testGetLanguageByContent(c, "Prolog") - s.testGetLanguageByContent(c, "Perl") - s.testGetLanguageByContent(c, "Perl6") - s.testGetLanguageByContent(c, "Hack") -} - -func (s *TSuite) testGetLanguageByContent(c *C, expected string) { - files, err := filepath.Glob(path.Join(".linguist/samples", expected, "*")) - c.Assert(err, IsNil) - - for _, file := range files { - s, _ := os.Stat(file) - if s.IsDir() { - continue - } - - content, _ := ioutil.ReadFile(file) - obtained, _ := GetLanguageByContent(path.Base(file), content) - if obtained == OtherLanguage { - continue - } - - c.Check(obtained, Equals, expected, Commentf(file)) - } -} - func (s *TSuite) TestGetLanguageByContentLinguistCorpus(c *C) { + c.Skip("report") + var total, failed, ok, other, unsafe int w := new(tabwriter.Writer) diff --git a/extension.go b/extension.go index ac56c0b..da97414 100644 --- a/extension.go +++ b/extension.go @@ -9,7 +9,7 @@ func GetLanguageByExtension(filename string) (lang string, safe bool) { ext := strings.ToLower(filepath.Ext(filename)) lang = OtherLanguage - langs, ok := LanguagesByExtension[ext] + langs, ok := languagesByExtension[ext] if !ok { return } diff --git a/languages.go b/languages.go new file mode 100644 index 0000000..fa960e5 --- /dev/null +++ b/languages.go @@ -0,0 +1,929 @@ +package slinguist + +// Extracted from github/linguist. +// This one-liner prints the latest version: +// curl https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml | python -c 'from collections import defaultdict; import os; import json; import yaml; l = yaml.load(os.sys.stdin.read()); exts = reduce(lambda acc, x: acc + x, [v.get("extensions", []) for k, v in l.items()], []); m = {ext: [k for k, v in l.items() if ext in v.get("extensions", [])] for ext in exts}; print "package utils\n\nvar languagesByExtension = map[string][]string{\n"+ json.dumps(m).replace("]", "}").replace("},", "},\n").replace("[", "{")[1:-1] + ",\n}\n"' | gofmt +var languagesByExtension = map[string][]string{ + ".obj": {"Wavefront Object"}, + ".sage": {"Sage"}, + ".tmux": {"Shell"}, + ".kt": {"Kotlin"}, + ".builder": {"Ruby"}, + ".lfe": {"LFE"}, + ".arpa": {"DNS Zone"}, + ".plsql": {"PLSQL"}, + ".nsh": {"NSIS"}, + ".sh-session": {"ShellSession"}, + ".ma": {"Mathematica"}, + ".raw": {"Raw token data"}, + ".moon": {"MoonScript"}, + ".rl": {"Ragel in Ruby Host"}, + ".ebuild": {"Gentoo Ebuild"}, + ".targets": {"XML"}, + ".lid": {"Dylan"}, + ".rb": {"Ruby"}, + ".iss": {"Inno Setup"}, + ".pony": {"Pony"}, + ".thor": {"Ruby"}, + ".xml.dist": {"XML"}, + ".resx": {"XML"}, + ".bmx": {"BlitzMax"}, + ".asd": {"Common Lisp"}, + ".geojson": {"JSON"}, + ".bro": {"Bro"}, + ".geo": {"GLSL"}, + ".mkdn": {"Markdown"}, + ".irclog": {"IRC log"}, + ".rs.in": {"Rust"}, + ".rkt": {"Racket"}, + ".bb": {"BitBake", "BlitzBasic"}, + ".rd": {"R"}, + ".mms": {"Module Management System"}, + ".glslv": {"GLSL"}, + ".el": {"Emacs Lisp"}, + ".nuspec": {"XML"}, + ".csx": {"C#"}, + ".rss": {"XML"}, + ".eh": {"eC"}, + ".c++objdump": {"Cpp-ObjDump"}, + ".sublime-settings": {"JavaScript"}, + ".ec": {"eC"}, + ".filters": {"XML"}, + ".csl": {"XML"}, + ".self": {"Self"}, + ".pytb": {"Python traceback"}, + ".ex": {"Elixir"}, + ".csd": {"Csound Document"}, + ".xliff": {"XML"}, + ".pm6": {"Perl6"}, + ".ant": {"XML"}, + ".pde": {"Processing"}, + ".pm": {"Perl6", "Perl"}, + ".pl": {"Perl6", "Prolog", "Perl"}, + ".rabl": {"Ruby"}, + ".f03": {"FORTRAN"}, + ".ph": {"Perl"}, + ".handlebars": {"Handlebars"}, + ".asmx": {"ASP"}, + ".chs": {"C2hs Haskell"}, + ".pb": {"PureBasic"}, + ".perl": {"Perl"}, + ".gtpl": {"Groovy"}, + ".py": {"Python"}, + ".djs": {"Dogescript"}, + ".xml": {"XML"}, + ".xmi": {"XML"}, + ".pp": {"Puppet", "Pascal"}, + ".ps": {"PostScript"}, + ".htm": {"HTML"}, + ".gsx": {"Gosu"}, + ".fxml": {"XML"}, + ".sagews": {"Sage"}, + ".sig": {"Standard ML"}, + ".stTheme": {"XML"}, + ".vba": {"Visual Basic"}, + ".gsp": {"Groovy Server Pages"}, + ".tst": {"Scilab", "GAP"}, + ".gst": {"Gosu"}, + ".sparql": {"SPARQL"}, + ".lagda": {"Literate Agda"}, + ".ily": {"LilyPond"}, + ".dita": {"XML"}, + ".watchr": {"Ruby"}, + ".vbs": {"Visual Basic"}, + ".prg": {"xBase"}, + ".ihlp": {"Stata"}, + ".pri": {"QMake"}, + ".ecr": {"HTML+ECR"}, + ".scrbl": {"Racket"}, + ".pro": {"INI", "Prolog", "QMake", "IDL"}, + ".axd": {"ASP"}, + ".txt": {"Text"}, + ".minid": {"MiniD"}, + ".maxpat": {"Max"}, + ".hh": {"Hack", "C++"}, + ".jinja": {"HTML+Django"}, + ".db2": {"SQLPL"}, + ".xsjs": {"JavaScript"}, + ".xojo_report": {"Xojo"}, + ".p6": {"Perl6"}, + ".escript": {"Erlang"}, + ".p6l": {"Perl6"}, + ".p6m": {"Perl6"}, + ".muf": {"MUF"}, + ".viw": {"SQL"}, + ".exs": {"Elixir"}, + ".qml": {"QML"}, + ".flex": {"JFlex"}, + ".sbt": {"Scala"}, + ".tml": {"XML"}, + ".nginxconf": {"Nginx"}, + ".xaml": {"XML"}, + ".zcml": {"XML"}, + ".urdf": {"XML"}, + ".hbs": {"Handlebars"}, + ".nit": {"Nit"}, + ".clp": {"CLIPS"}, + ".wiki": {"MediaWiki"}, + ".reb": {"Rebol"}, + ".ado": {"Stata"}, + ".red": {"Red"}, + ".adb": {"Ada"}, + ".ada": {"Ada"}, + ".bats": {"Shell"}, + ".xpy": {"Python"}, + ".hxsl": {"Haxe"}, + ".f90": {"FORTRAN"}, + ".ox": {"Ox"}, + ".wsf": {"XML"}, + ".oz": {"Oz"}, + ".ads": {"Ada"}, + ".xpl": {"XProc"}, + ".adp": {"Tcl"}, + ".graphql": {"GraphQL"}, + ".rktl": {"Racket"}, + ".3m": {"Groff"}, + ".owl": {"Web Ontology Language"}, + ".tmSnippet": {"XML"}, + ".vue": {"Vue"}, + ".pir": {"Parrot Internal Representation"}, + ".yaml": {"YAML"}, + ".axs": {"NetLinx"}, + ".rst.txt": {"reStructuredText"}, + ".wsgi": {"Python"}, + ".hlsl": {"HLSL"}, + ".lmi": {"Python"}, + ".command": {"Shell"}, + ".vert": {"GLSL"}, + ".objdump": {"ObjDump"}, + ".yml": {"YAML"}, + ".fr": {"Text", "Frege", "Forth"}, + ".pig": {"PigLatin"}, + ".phtml": {"HTML+PHP"}, + ".ml4": {"OCaml"}, + ".bas": {"Visual Basic"}, + ".fy": {"Fancy"}, + ".fx": {"HLSL", "FLUX"}, + ".wxi": {"XML"}, + ".wxl": {"XML"}, + ".gap": {"GAP"}, + ".aug": {"Augeas"}, + ".ipynb": {"Jupyter Notebook"}, + ".diff": {"Diff"}, + ".wl": {"Mathematica"}, + ".cljs.hl": {"Clojure"}, + ".wxs": {"XML"}, + ".tsx": {"XML", "TypeScript"}, + ".f08": {"FORTRAN"}, + ".rst": {"reStructuredText"}, + ".mll": {"OCaml"}, + ".mli": {"OCaml"}, + ".grace": {"Grace"}, + ".cljc": {"Clojure"}, + ".rsx": {"R"}, + ".txl": {"TXL"}, + ".cljx": {"Clojure"}, + ".sublime-syntax": {"YAML"}, + ".pmod": {"Pike"}, + ".cobol": {"COBOL"}, + ".mly": {"OCaml"}, + ".opa": {"Opa"}, + ".storyboard": {"XML"}, + ".cljs": {"Clojure"}, + ".feature": {"Cucumber"}, + ".rsh": {"RenderScript"}, + ".arc": {"Arc"}, + ".vshader": {"GLSL"}, + ".matah": {"Stata"}, + ".ts": {"XML", "TypeScript"}, + ".xojo_window": {"Xojo"}, + ".tu": {"Turing"}, + ".bsv": {"Bluespec"}, + ".tm": {"Tcl"}, + ".mo": {"Modelica"}, + ".rhtml": {"RHTML"}, + ".xib": {"XML"}, + ".tf": {"HCL"}, + ".clixml": {"XML"}, + ".smt": {"SMT"}, + ".applescript": {"AppleScript"}, + ".rviz": {"YAML"}, + ".factor": {"Factor"}, + ".eclxml": {"ECL"}, + ".sma": {"SourcePawn"}, + ".fun": {"Standard ML"}, + ".sml": {"Standard ML"}, + ".axml": {"XML"}, + ".reds": {"Red"}, + ".dae": {"COLLADA"}, + ".spin": {"Propeller Spin"}, + ".bash": {"Shell"}, + ".tmCommand": {"XML"}, + ".cbx": {"TeX"}, + ".numpyw": {"NumPy"}, + ".cmake.in": {"CMake"}, + ".intr": {"Dylan"}, + ".vhdl": {"VHDL"}, + ".textile": {"Textile"}, + ".ditaval": {"XML"}, + ".vhost": {"Nginx", "ApacheConf"}, + ".tac": {"Python"}, + ".tab": {"SQL"}, + ".pov": {"POV-Ray SDL"}, + ".rno": {"Groff"}, + ".sublime-snippet": {"XML"}, + ".haml.deface": {"Haml"}, + ".rest": {"reStructuredText"}, + ".sublime-commands": {"JavaScript"}, + ".cfml": {"ColdFusion"}, + ".cp": {"Component Pascal", "C++"}, + "._coffee": {"CoffeeScript"}, + ".rebol": {"Rebol"}, + ".cs": {"C#", "Smalltalk"}, + ".ct": {"XML"}, + ".cu": {"Cuda"}, + ".cw": {"Redcode"}, + ".ch": {"Charity", "xBase"}, + ".wsdl": {"XML"}, + ".fan": {"Fantom"}, + ".ck": {"ChucK"}, + ".ahk": {"AutoHotkey"}, + ".dpatch": {"Darcs Patch"}, + ".fcgi": {"PHP", "Python", "Shell", "Perl", "Lua", "Ruby"}, + ".cc": {"C++"}, + ".yap": {"Prolog"}, + ".fancypack": {"Fancy"}, + ".1m": {"Groff"}, + ".sty": {"TeX"}, + ".cshtml": {"C#"}, + ".bf": {"HyPhy", "Brainfuck"}, + ".cl2": {"Clojure"}, + ".mcr": {"MAXScript"}, + ".rpy": {"Ren'Py", "Python"}, + ".vark": {"Gosu"}, + ".osm": {"XML"}, + ".upc": {"Unified Parallel C"}, + ".xojo_code": {"Xojo"}, + ".anim": {"Unity3D Asset"}, + ".smt2": {"SMT"}, + ".gms": {"GAMS"}, + ".hic": {"Clojure"}, + ".raml": {"RAML"}, + ".mawk": {"Awk"}, + ".iced": {"CoffeeScript"}, + ".pkgproj": {"XML"}, + ".dylan": {"Dylan"}, + ".em": {"EmberScript"}, + ".gml": {"XML", "Graph Modeling Language", "Game Maker Language"}, + ".dotsettings": {"XML"}, + ".ahkl": {"AutoHotkey"}, + ".ps1": {"PowerShell"}, + ".mdpolicy": {"XML"}, + ".sublime_metrics": {"JavaScript"}, + ".pwn": {"PAWN"}, + ".ldml": {"Lasso"}, + ".i7x": {"Inform 7"}, + ".clj": {"Clojure"}, + ".robot": {"RobotFramework"}, + ".1": {"Groff"}, + ".gvy": {"Groovy"}, + ".xproc": {"XProc"}, + ".cls": {"Visual Basic", "Apex", "TeX", "OpenEdge ABL"}, + ".unity": {"Unity3D Asset"}, + ".clw": {"Clarion"}, + ".opencl": {"OpenCL"}, + ".blade": {"Blade"}, + ".csv": {"CSV"}, + ".fish": {"fish"}, + ".idc": {"C"}, + ".1x": {"Groff"}, + ".ltx": {"TeX"}, + ".pac": {"JavaScript"}, + ".sch": {"Eagle", "KiCad"}, + ".php3": {"PHP"}, + ".idr": {"Idris"}, + ".mkfile": {"Makefile"}, + ".php5": {"PHP"}, + ".php4": {"PHP"}, + ".css": {"CSS"}, + ".ditamap": {"XML"}, + ".pas": {"Pascal"}, + ".grxml": {"XML"}, + ".jflex": {"JFlex"}, + ".bison": {"Bison"}, + ".a51": {"Assembly"}, + ".mtl": {"Wavefront Material"}, + ".metal": {"Metal"}, + ".opal": {"Opal"}, + ".mkdown": {"Markdown"}, + ".tcc": {"C++"}, + ".csh": {"Tcsh"}, + ".nproj": {"XML"}, + ".eps": {"PostScript"}, + ".xul": {"XML"}, + ".hb": {"Harbour"}, + ".markdown": {"Markdown"}, + ".sublime_session": {"JavaScript"}, + "._ls": {"LiveScript"}, + ".lgt": {"Logtalk"}, + ".phps": {"PHP"}, + ".hs": {"Haskell"}, + ".phpt": {"PHP"}, + ".fxh": {"HLSL"}, + ".epj": {"Ecere Projects"}, + ".hy": {"Hy"}, + ".hx": {"Haxe"}, + ".JSON-tmLanguage": {"JSON"}, + ".prefab": {"Unity3D Asset"}, + ".tex": {"TeX"}, + ".rbx": {"Ruby"}, + ".5": {"Groff"}, + ".pluginspec": {"XML", "Ruby"}, + ".yy": {"Yacc"}, + ".rbw": {"Ruby"}, + ".cl": {"OpenCL", "Cool", "Common Lisp"}, + ".es": {"JavaScript", "Erlang"}, + ".rest.txt": {"reStructuredText"}, + ".sublime-keymap": {"JavaScript"}, + ".tea": {"Tea"}, + ".eq": {"EQ"}, + ".f77": {"FORTRAN"}, + ".zmpl": {"Zimpl"}, + ".mediawiki": {"MediaWiki"}, + ".man": {"Groff"}, + ".4th": {"Forth"}, + ".pan": {"Pan"}, + ".d-objdump": {"D-ObjDump"}, + ".scxml": {"XML"}, + ".pd_lua": {"Lua"}, + ".god": {"Ruby"}, + ".hats": {"ATS"}, + ".lvproj": {"LabVIEW"}, + ".pat": {"Max"}, + ".purs": {"PureScript"}, + ".aux": {"TeX"}, + ".cproject": {"XML"}, + ".pxd": {"Cython"}, + ".creole": {"Creole"}, + ".moo": {"Mercury", "Moocode"}, + ".hpp": {"C++"}, + ".mod": {"Modula-2", "XML", "Linux Kernel Module", "AMPL"}, + ".pxi": {"Cython"}, + ".auk": {"Awk"}, + ".befunge": {"Befunge"}, + ".bib": {"TeX"}, + ".pd": {"Pure Data"}, + ".jsb": {"JavaScript"}, + ".mata": {"Stata"}, + ".3qt": {"Groff"}, + ".xhtml": {"HTML"}, + ".mako": {"Mako"}, + ".mask": {"Mask"}, + ".eex": {"HTML+EEX"}, + ".duby": {"Mirah"}, + ".coq": {"Coq"}, + ".scss": {"SCSS"}, + ".emacs": {"Emacs Lisp"}, + ".lex": {"Lex"}, + ".cob": {"COBOL"}, + ".toml": {"TOML"}, + ".ll": {"LLVM"}, + ".adoc": {"AsciiDoc"}, + ".ooc": {"ooc"}, + ".json": {"JSON"}, + ".tpp": {"C++"}, + ".au3": {"AutoIt"}, + ".vcl": {"VCL"}, + ".grt": {"Groovy"}, + ".lua": {"Lua"}, + ".vxml": {"XML"}, + ".6": {"Groff"}, + ".tpl": {"Smarty"}, + ".numpy": {"NumPy"}, + ".7": {"Groff"}, + ".sh.in": {"Shell"}, + ".odd": {"XML"}, + ".pyde": {"Python"}, + ".emberscript": {"EmberScript"}, + ".plist": {"XML"}, + ".sexp": {"Common Lisp"}, + ".pt": {"XML"}, + ".toc": {"World of Warcraft Addon Data", "TeX"}, + ".pod": {"Perl", "Pod"}, + ".ni": {"Inform 7"}, + ".mathematica": {"Mathematica"}, + ".ruby": {"Ruby"}, + ".sthlp": {"Stata"}, + ".g4": {"ANTLR"}, + ".dyl": {"Dylan"}, + ".pot": {"Gettext Catalog"}, + ".coffee": {"CoffeeScript"}, + ".nim": {"Nimrod"}, + ".cirru": {"Cirru"}, + ".kicad_pcb": {"KiCad"}, + ".groovy": {"Groovy"}, + ".nse": {"Lua"}, + ".ron": {"Markdown"}, + ".ls": {"LiveScript", "LoomScript"}, + ".lasso9": {"Lasso"}, + ".lasso8": {"Lasso"}, + ".xqy": {"XQuery"}, + ".asciidoc": {"AsciiDoc"}, + ".sublime-menu": {"JavaScript"}, + ".ecl": {"ECLiPSe", "ECL"}, + ".E": {"E"}, + ".myt": {"Myghty"}, + ".agc": {"Apollo Guidance Computer"}, + ".xtend": {"Xtend"}, + ".dpr": {"Pascal"}, + ".latte": {"Latte"}, + ".xqm": {"XQuery"}, + ".xql": {"XQuery"}, + ".ivy": {"XML"}, + ".gf": {"Grammatical Framework"}, + ".numsc": {"NumPy"}, + ".shader": {"GLSL"}, + ".hcl": {"HCL"}, + ".go": {"Go"}, + ".gi": {"GAP"}, + ".yang": {"YANG"}, + ".gv": {"Graphviz (DOT)"}, + ".sfproj": {"XML"}, + ".gp": {"Gnuplot"}, + ".njs": {"JavaScript"}, + ".gs": {"JavaScript", "Gosu"}, + ".lslp": {"LSL"}, + ".com": {"DIGITAL Command Language"}, + ".cy": {"Cycript"}, + ".scpt": {"AppleScript"}, + ".rg": {"Rouge"}, + ".boot": {"Clojure"}, + ".lasso": {"Lasso"}, + ".rs": {"RenderScript", "Rust"}, + ".flux": {"FLUX"}, + ".slim": {"Slim"}, + ".pike": {"Pike"}, + ".ru": {"Ruby"}, + ".rbuild": {"Ruby"}, + ".wlt": {"Mathematica"}, + ".1in": {"Groff"}, + ".hqf": {"SQF"}, + ".dats": {"ATS"}, + ".asset": {"Unity3D Asset"}, + ".hlsli": {"HLSL"}, + ".zpl": {"Zimpl"}, + ".prc": {"SQL"}, + ".for": {"Forth", "Formatted", "FORTRAN"}, + ".mkd": {"Markdown"}, + ".ccp": {"COBOL"}, + ".cr": {"Crystal"}, + ".ijs": {"J"}, + ".emacs.desktop": {"Emacs Lisp"}, + ".xojo_toolbar": {"Xojo"}, + ".x10": {"X10"}, + ".ttl": {"Turtle"}, + ".doh": {"Stata"}, + ".ux": {"XML"}, + ".gawk": {"Awk"}, + ".twig": {"Twig"}, + ".ur": {"UrWeb"}, + ".mumps": {"M"}, + ".darcspatch": {"Darcs Patch"}, + ".bbx": {"TeX"}, + ".ui": {"XML"}, + ".r3": {"Rebol"}, + ".r2": {"Rebol"}, + ".ksh": {"Shell"}, + ".ccxml": {"XML"}, + ".dot": {"Graphviz (DOT)"}, + ".xproj": {"XML"}, + ".sls": {"Scheme", "SaltStack"}, + ".vbproj": {"XML"}, + ".sql": {"PLpgSQL", "PLSQL", "SQL", "SQLPL"}, + ".hxx": {"C++"}, + ".thrift": {"Thrift"}, + ".yaml-tmlanguage": {"YAML"}, + ".ktm": {"Kotlin"}, + ".dfm": {"Pascal"}, + ".litcoffee": {"Literate CoffeeScript"}, + ".aj": {"AspectJ"}, + ".kts": {"Kotlin"}, + ".sld": {"Scheme"}, + ".icl": {"Clean"}, + ".topojson": {"JSON"}, + ".cjsx": {"CoffeeScript"}, + ".cdf": {"Mathematica"}, + ".ik": {"Ioke"}, + ".xrl": {"Erlang"}, + ".io": {"Io"}, + ".f": {"Forth", "FORTRAN"}, + ".sqf": {"SQF"}, + ".cmd": {"Batchfile"}, + ".dyalog": {"APL"}, + ".lisp": {"NewLisp", "Common Lisp"}, + ".sublime-mousemap": {"JavaScript"}, + ".al": {"Perl"}, + ".bones": {"JavaScript"}, + ".jscad": {"JavaScript"}, + ".vala": {"Vala"}, + ".druby": {"Mirah"}, + ".psc": {"Papyrus"}, + ".dlm": {"IDL"}, + ".cxx-objdump": {"Cpp-ObjDump"}, + ".xojo_menu": {"Xojo"}, + ".pkb": {"PLSQL"}, + ".lookml": {"LookML"}, + ".boo": {"Boo"}, + ".h++": {"C++"}, + ".pasm": {"Parrot Assembly"}, + ".dart": {"Dart"}, + ".cxx": {"C++"}, + ".ceylon": {"Ceylon"}, + ".pks": {"PLSQL"}, + ".bat": {"Batchfile"}, + ".desktop.in": {"desktop"}, + ".srt": {"SRecode Template", "SubRip Text"}, + ".c++-objdump": {"Cpp-ObjDump"}, + ".lol": {"LOLCODE"}, + ".dtx": {"TeX"}, + ".gco": {"G-code"}, + ".es6": {"JavaScript"}, + ".pbi": {"PureBasic"}, + ".qbs": {"QML"}, + ".cats": {"C"}, + ".psm1": {"PowerShell"}, + ".rbuistate": {"REALbasic"}, + ".tmLanguage": {"XML"}, + ".glf": {"Glyph"}, + ".irbrc": {"Ruby"}, + ".tmPreferences": {"XML"}, + ".tla": {"TLA"}, + ".vrx": {"GLSL"}, + ".rake": {"Ruby"}, + ".omgrofl": {"Omgrofl"}, + ".org": {"Org"}, + ".tmTheme": {"XML"}, + ".cql": {"SQL"}, + ".xslt": {"XSLT"}, + ".apl": {"APL"}, + ".lpr": {"Pascal"}, + ".vapi": {"Vala"}, + ".wlua": {"Lua"}, + ".uc": {"UnrealScript"}, + ".edn": {"edn"}, + ".hrl": {"Erlang"}, + ".maxproj": {"Max"}, + ".builds": {"XML"}, + ".veo": {"Verilog"}, + ".nbp": {"Mathematica"}, + ".vh": {"SystemVerilog"}, + ".udo": {"Csound"}, + ".ins": {"TeX"}, + ".pogo": {"PogoScript"}, + ".udf": {"SQL"}, + ".psd1": {"PowerShell"}, + ".bzl": {"Python"}, + ".glade": {"XML"}, + ".cppobjdump": {"Cpp-ObjDump"}, + ".inc": {"PHP", "HTML", "SourcePawn", "Assembly", "PAWN", "SQL", "Pascal", "POV-Ray SDL", "C++"}, + ".ini": {"INI"}, + ".vhd": {"VHDL"}, + ".webidl": {"WebIDL"}, + ".sublime-project": {"JavaScript"}, + ".inl": {"C++"}, + ".ino": {"Arduino"}, + ".frg": {"GLSL"}, + ".zsh": {"Shell"}, + ".decls": {"BlitzBasic"}, + ".xacro": {"XML"}, + ".frm": {"Visual Basic"}, + ".ddl": {"SQL"}, + ".cson": {"CoffeeScript"}, + ".cake": {"CoffeeScript", "C#"}, + ".ssjs": {"JavaScript"}, + ".frt": {"Forth"}, + ".dcl": {"Clean"}, + ".rbres": {"REALbasic"}, + ".sce": {"Scilab"}, + ".ascx": {"ASP"}, + ".frx": {"Visual Basic"}, + ".tcl": {"Tcl"}, + ".agda": {"Agda"}, + ".yrl": {"Erlang"}, + ".eclass": {"Gentoo Eclass"}, + ".3in": {"Groff"}, + ".mustache": {"HTML+Django"}, + ".fpp": {"FORTRAN"}, + ".geom": {"GLSL"}, + ".fsproj": {"XML"}, + ".json5": {"JSON5"}, + ".scaml": {"Scaml"}, + ".c++": {"C++"}, + ".jade": {"Jade"}, + ".gradle": {"Gradle"}, + ".mt": {"Mathematica"}, + ".mu": {"mupad"}, + ".ms": {"MAXScript", "GAS", "Groff"}, + ".f95": {"FORTRAN"}, + ".cpp-objdump": {"Cpp-ObjDump"}, + ".rbbas": {"REALbasic"}, + ".3x": {"Groff"}, + ".md": {"GCC Machine Description", "Markdown"}, + ".me": {"Groff"}, + ".mxt": {"Max"}, + ".apacheconf": {"ApacheConf"}, + ".ml": {"OCaml"}, + ".mm": {"Objective-C++", "XML"}, + ".mk": {"Makefile"}, + ".nawk": {"Awk"}, + ".axi.erb": {"NetLinx+ERB"}, + ".di": {"D"}, + ".orc": {"Csound"}, + ".podspec": {"Ruby"}, + ".dm": {"DM"}, + ".cmake": {"CMake"}, + ".do": {"Stata"}, + ".zep": {"Zephir"}, + ".chpl": {"Chapel"}, + ".svg": {"SVG"}, + ".props": {"XML"}, + ".podsl": {"Common Lisp"}, + ".roff": {"Groff"}, + ".svh": {"SystemVerilog"}, + ".ampl": {"AMPL"}, + ".m4": {"M4", "M4Sugar"}, + ".oxygene": {"Oxygene"}, + ".jbuilder": {"Ruby"}, + ".jsx": {"JSX"}, + ".cuh": {"Cuda"}, + ".mat": {"Unity3D Asset"}, + ".jsp": {"Java Server Pages"}, + ".jss": {"JavaScript"}, + ".jsm": {"JavaScript"}, + ".jsproj": {"XML"}, + ".mak": {"Makefile"}, + ".parrot": {"Parrot"}, + ".properties": {"INI"}, + ".mao": {"Mako"}, + ".hlean": {"Lean"}, + ".ML": {"Standard ML"}, + ".jl": {"Julia"}, + ".prw": {"xBase"}, + ".stan": {"Stan"}, + ".gcode": {"G-code"}, + ".plot": {"Gnuplot"}, + ".lsl": {"LSL"}, + ".matlab": {"Matlab"}, + ".axi": {"NetLinx"}, + ".pyp": {"Python"}, + ".zimpl": {"Zimpl"}, + ".pyt": {"Python"}, + ".pyw": {"Python"}, + ".lsp": {"NewLisp", "Common Lisp"}, + ".pyx": {"Cython"}, + ".psgi": {"Perl"}, + ".dockerfile": {"Dockerfile"}, + ".tcsh": {"Tcsh"}, + ".xojo_script": {"Xojo"}, + ".lean": {"Lean"}, + ".prolog": {"Prolog"}, + ".capnp": {"Cap'n Proto"}, + ".wisp": {"wisp"}, + ".jake": {"JavaScript"}, + ".golo": {"Golo"}, + ".nlogo": {"NetLogo"}, + ".rbmnu": {"REALbasic"}, + ".krl": {"KRL"}, + ".nsi": {"NSIS"}, + ".vhs": {"VHDL"}, + ".vht": {"VHDL"}, + ".rbfrm": {"REALbasic"}, + ".vhw": {"VHDL"}, + ".forth": {"Forth"}, + ".sublime-theme": {"JavaScript"}, + ".smali": {"Smali"}, + ".scm": {"Scheme"}, + ".sco": {"Csound Score"}, + ".pl6": {"Perl6"}, + ".sci": {"Scilab"}, + ".vhf": {"VHDL"}, + ".apib": {"API Blueprint"}, + ".scd": {"SuperCollider"}, + ".vhi": {"VHDL"}, + ".nut": {"Squirrel"}, + ".ninja": {"Ninja"}, + ".pkl": {"Pickle"}, + ".vho": {"VHDL"}, + ".syntax": {"YAML"}, + ".swift": {"Swift"}, + ".rbxs": {"Lua"}, + ".las": {"Lasso"}, + ".axs.erb": {"NetLinx+ERB"}, + ".js": {"JavaScript"}, + ".jq": {"JSONiq"}, + ".click": {"Click"}, + ".sublime-build": {"JavaScript"}, + ".aspx": {"ASP"}, + ".plb": {"PLSQL"}, + ".mss": {"CartoCSS"}, + ".sublime-workspace": {"JavaScript"}, + ".ipf": {"IGOR Pro"}, + ".mspec": {"Ruby"}, + ".gshader": {"GLSL"}, + ".pls": {"PLSQL"}, + ".http": {"HTTP"}, + ".plt": {"Gnuplot"}, + ".c-objdump": {"C-ObjDump"}, + ".eliom": {"OCaml"}, + ".lhs": {"Literate Haskell"}, + ".plx": {"Perl"}, + ".vb": {"Visual Basic"}, + ".rktd": {"Racket"}, + ".yacc": {"Yacc"}, + ".pck": {"PLSQL"}, + ".logtalk": {"Logtalk"}, + ".eliomi": {"OCaml"}, + ".cpp": {"C++"}, + ".cps": {"Component Pascal"}, + ".mirah": {"Mirah"}, + ".zone": {"DNS Zone"}, + ".cpy": {"COBOL"}, + ".erb.deface": {"HTML+ERB"}, + ".liquid": {"Liquid"}, + ".asp": {"ASP"}, + ".jsonld": {"JSONLD"}, + ".xq": {"XQuery"}, + ".proto": {"Protocol Buffer"}, + ".mmk": {"Module Management System"}, + ".ps1xml": {"XML"}, + ".fshader": {"GLSL"}, + ".asc": {"Public Key", "AsciiDoc", "AGS Script"}, + ".rq": {"SPARQL"}, + ".xc": {"XC"}, + ".xm": {"Logos"}, + ".vsh": {"GLSL"}, + ".ash": {"AGS Script"}, + ".xi": {"Logos"}, + ".csproj": {"XML"}, + ".asm": {"Assembly"}, + ".sh": {"Shell"}, + ".sj": {"Objective-J"}, + ".sl": {"Slash"}, + ".dll.config": {"XML"}, + ".volt": {"Volt"}, + ".rdoc": {"RDoc"}, + ".sc": {"SuperCollider", "Scala"}, + ".xlf": {"XML"}, + ".sp": {"SourcePawn"}, + ".tool": {"Shell"}, + ".urs": {"UrWeb"}, + ".ss": {"Scheme"}, + ".st": {"HTML", "Smalltalk"}, + ".sv": {"SystemVerilog"}, + ".cbl": {"COBOL"}, + ".iml": {"XML"}, + ".sps": {"Scheme"}, + ".sats": {"ATS"}, + ".frag": {"GLSL", "JavaScript"}, + ".kit": {"Kit"}, + ".pug": {"Jade"}, + ".sjs": {"JavaScript"}, + ".pub": {"Public Key"}, + ".html": {"HTML"}, + ".xsp.metadata": {"XPages"}, + ".eam.fs": {"Formatted"}, + ".kid": {"Genshi"}, + ".ld": {"Linker Script"}, + ".haml": {"Haml"}, + ".styl": {"Stylus"}, + ".po": {"Gettext Catalog"}, + ".fsi": {"F#"}, + ".fsh": {"GLSL"}, + ".elm": {"Elm"}, + ".nix": {"Nix"}, + ".lbx": {"TeX"}, + ".html.hl": {"HTML"}, + ".gyp": {"Python"}, + ".hsc": {"Haskell"}, + ".pascal": {"Pascal"}, + ".fsx": {"F#"}, + ".shen": {"Shen"}, + ".maxhelp": {"Max"}, + ".nqp": {"Perl6"}, + ".6pl": {"Perl6"}, + ".6pm": {"Perl6"}, + ".sass": {"Sass"}, + ".meta": {"Unity3D Asset"}, + ".brs": {"Brightscript"}, + ".mkiv": {"TeX"}, + ".vcxproj": {"XML"}, + ".rmd": {"RMarkdown"}, + ".8": {"Groff"}, + ".9": {"Groff"}, + ".scala": {"Scala"}, + ".jsfl": {"JavaScript"}, + ".mkii": {"TeX"}, + ".fs": {"GLSL", "F#", "Forth", "Filterscript"}, + ".2": {"Groff"}, + ".3": {"Groff"}, + ".4": {"Groff"}, + ".scad": {"OpenSCAD"}, + ".brd": {"Eagle", "KiCad"}, + ".glsl": {"GLSL"}, + ".no": {"Text"}, + ".gd": {"GAP", "GDScript"}, + ".nl": {"NewLisp", "NL"}, + ".rdf": {"XML"}, + ".xsl": {"XSLT"}, + "._js": {"JavaScript"}, + ".fp": {"GLSL"}, + ".nc": {"nesC"}, + ".nb": {"Text", "Mathematica"}, + ".gemspec": {"Ruby"}, + ".xsd": {"XML"}, + ".less": {"Less"}, + ".erl": {"Erlang"}, + ".ny": {"Common Lisp"}, + ".cgi": {"Python", "Shell", "Perl"}, + ".nu": {"Nu"}, + ".erb": {"HTML+ERB"}, + ".h": {"C", "Objective-C", "C++"}, + ".cljscm": {"Clojure"}, + ".j": {"Objective-J", "Jasmin"}, + ".vssettings": {"XML"}, + ".l": {"PicoLisp", "Lex", "Groff", "Common Lisp"}, + ".m": {"Mercury", "Limbo", "Objective-C", "MUF", "Mathematica", "Matlab", "M"}, + ".php": {"PHP", "Hack"}, + ".gnuplot": {"Gnuplot"}, + ".psc1": {"XML"}, + ".oxh": {"Ox"}, + ".b": {"Limbo", "Brainfuck"}, + ".c": {"C"}, + ".d": {"DTrace", "Makefile", "D"}, + ".e": {"Eiffel"}, + ".oxo": {"Ox"}, + ".g": {"G-code", "GAP"}, + ".x": {"Logos"}, + ".y": {"Yacc"}, + ".aw": {"PHP"}, + ".mxml": {"XML"}, + ".p": {"OpenEdge ABL"}, + ".nasm": {"Assembly"}, + ".r": {"Rebol", "R"}, + ".s": {"GAS"}, + ".t": {"Perl6", "Terra", "Turing", "Perl"}, + ".ston": {"STON"}, + ".v": {"Verilog", "Coq"}, + ".w": {"C"}, + ".desktop": {"desktop"}, + ".ejs": {"EJS"}, + ".gnu": {"Gnuplot"}, + ".awk": {"Awk"}, + ".x3d": {"XML"}, + ".vim": {"VimL"}, + ".sublime-completions": {"JavaScript"}, + ".asax": {"ASP"}, + ".ctp": {"PHP"}, + ".nimrod": {"Nimrod"}, + ".als": {"Alloy"}, + ".mir": {"Mirah"}, + ".lidr": {"Idris"}, + ".xquery": {"XQuery"}, + ".prefs": {"INI"}, + ".app.src": {"Erlang"}, + ".monkey": {"Monkey"}, + ".srdf": {"XML"}, + ".jelly": {"XML"}, + ".n": {"Nemerle", "Groff"}, + ".sublime-macro": {"JavaScript"}, + ".kml": {"XML"}, + ".thy": {"Isabelle"}, + ".ncl": {"Text", "NCL"}, + ".weechatlog": {"IRC log"}, + ".ashx": {"ASP"}, + ".xsjslib": {"JavaScript"}, + ".xht": {"HTML"}, + ".blade.php": {"Blade"}, + ".uno": {"Uno"}, + ".ly": {"LilyPond"}, + ".patch": {"Diff"}, + ".launch": {"XML"}, + ".mkvi": {"TeX"}, + ".xsp-config": {"XPages"}, + ".mtml": {"MTML"}, + ".xs": {"XS"}, + ".lds": {"Linker Script"}, + ".reek": {"YAML"}, + ".rbtbar": {"REALbasic"}, + ".abap": {"ABAP"}, + ".cfc": {"ColdFusion CFC"}, + ".ipp": {"C++"}, + ".vbhtml": {"Visual Basic"}, + ".cfg": {"INI"}, + ".sas": {"SAS"}, + ".ftl": {"FreeMarker"}, + ".java": {"Java"}, + ".fth": {"Forth"}, + ".cfm": {"ColdFusion"}, + ".as": {"ActionScript"}, +} diff --git a/utils.go b/utils.go index 07a2063..17d7755 100644 --- a/utils.go +++ b/utils.go @@ -8,6 +8,11 @@ import ( "gopkg.in/toqueteos/substring.v1" ) +func IsAuxiliaryLanguage(lang string) bool { + _, ok := auxiliaryLanguages[lang] + return ok +} + func IsConfiguration(path string) bool { lang, _ := GetLanguageByExtension(path) _, is := configurationLanguages[lang]