1-- Filename and shebang mapping 2-- 3-- Add an entry for a language syntax which is occupied by multiple source file extensions. 4-- If there is only one extension, just name the lang file accordingly and it will work (no entry needed here). 5-- The filetype entries in gui_files/ext/fileopenfilter.conf should also be updated for the GUI file dialogs. 6-- 7-- Extensions can be configured for multiple languages (see "asm", which is assigned to assembler and fasm). 8-- The command line (CLI) and Qt GUI builds handle ambiguous assignments as follows: 9-- - CLI: the first association listed here will be used 10-- - GUI: a syntax selection prompt will be shown 11-- 12-- If a filename has no extension by convention (ie. makefile), it may be added here nevertheless or be 13-- configured as "Shebang". 14-- 15-- You can assign complete filenames to a syntax with "Filenames", see the "cmake" entry. 16-- To define both filenames and extensions, add two separate entries (see "sh" entry). 17-- 18-- A default input encoding can be set with an EncodingHint attribute (requires v. 3.55). 19-- 20-- The first filetypes.conf found in a highlight search directory wins. See README.adoc for search dirs. 21-- 22-- You can override specific settings in ~/.highlight/filetypes.conf like this: 23-- 24-- dofile "/etc/highlight/filetypes.conf" 25-- 26-- table.insert(FileMapping, { Lang="yourlang", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?yourlang]] }) 27 28FileMapping = { 29 30 { Lang="abap", Extensions={"abp"} }, 31 { Lang="ada", Extensions={"adb", "ads", "a", "gnad"} }, 32 { Lang="alan", Extensions={"alan", "i"} }, 33 { Lang="algol", Extensions={"alg"} }, 34 { Lang="ampl", Extensions={"dat", "run"} }, 35 { Lang="amtrix", Extensions={"s4", "s4t", "s4h", "hnd", "t4"} }, 36 { Lang="assembler", Extensions={"asm", "a51", "29k", "68s", "68x", "x86"} }, 37 { Lang="fasm", Extensions={"asm", "inc"} }, 38 { Lang="asp", Extensions={"aspx", "ashx", "ascx"} }, 39 { Lang="ats", Extensions={"dats"} }, 40 { Lang="aspect", Extensions={"was", "wud"} }, 41 { Lang="ballerina", Extensions={"bal"} }, 42 { Lang="bat", Extensions={"cmd"} }, 43 { Lang="c", Extensions={"c++", "cpp", "cxx", "cc", "h", "hh", "hxx", "hpp", "cu", "inl", "ipp"} }, 44 { Lang="cmake", Filenames={"CMakeLists.txt"} }, 45 { Lang="charmm", Extensions={"inp"} }, 46 { Lang="coldfusion", Extensions={"cfc","cfm"} }, 47 { Lang="cobol", Extensions={"cob", "cbl"} }, 48 { Lang="crystal", Extensions={"cr"} }, 49 { Lang="coffeescript", Extensions={"coffee"} }, 50 { Lang="conf", Extensions={"anacrontab"} }, 51 { Lang="delphi", Extensions={"pas", "dpr"} }, 52 { Lang="diff", Extensions={"patch"} }, 53 { Lang="dts", Extensions={"dtsi"} }, 54 { Lang="eiffel", Extensions={"e", "se"} }, 55 { Lang="elixir", Extensions={"ex", "exs"} }, 56 { Lang="erlang", Extensions={"hrl", "erl"} }, 57 { Lang="euphoria", Extensions={"ex", "exw", "wxu", "ew", "eu"} }, 58 { Lang="fortran77", Extensions={"f", "for", "ftn"} }, 59 { Lang="fortran90", Extensions={"f95", "f90"} }, 60 { Lang="gambas", Extensions={"class"} }, 61 { Lang="gdscript", Extensions={"gd"} }, 62 { Lang="haskell", Extensions={"hs"} }, 63 { Lang="hugo", Extensions={"hug"} }, 64 { Lang="ini", Extensions={"doxyfile", "desktop", "kdev3", "reg", "cfg", "inf"} }, 65 { Lang="java", Extensions={"groovy", "grv", "jenkinsfile", "gradle"} }, 66 { Lang="javascript", Extensions={"js"} }, 67 { Lang="julia", Extensions={"jl"} }, 68 { Lang="kotlin", Extensions={"kt", "kts"} }, 69 { Lang="limbo", Extensions={"b"} }, 70 { Lang="lisp", Extensions={"cl", "clisp", "el", "lsp", "sbcl", "scom", "fas", "scm", "mud", "fasl" } }, 71 { Lang="makefile", Extensions={"mak", "mk", "gnumakefile"} }, 72 { Lang="meson", Filenames={ "meson.build", "meson_options.txt" } }, 73 { Lang="snmp", Extensions={"mib", "smi"} }, 74 { Lang="ocaml", Extensions={"ml","mli"} }, 75 { Lang="mod2", Extensions={"mod", "def"} }, 76 { Lang="mod3", Extensions={"m3", "i3"} }, 77 { Lang="oberon", Extensions={"ooc"} }, 78 { Lang="php", Extensions={"php3", "php4", "php5", "php6", "php7", "phps", "phpt"} }, 79 { Lang="pike", Extensions={"pmod"} }, 80 { Lang="pl1", Extensions={"ff", "fp", "fpp", "rpp","sf", "sp", "spb", 81 "spp","sps", "wp", "wf", "wpp","wps","wpb","bdy","spe"} }, 82 { Lang="perl", Extensions={"pl","perl", "cgi", "pm", "plx", "plex"} }, 83 { Lang="polygen", Extensions={"grm"} }, 84 { Lang="pro", Extensions={"pro"} }, 85 { Lang="qmake", Extensions={"pro"} }, 86 { Lang="progress", Extensions={"p", "i", "w"} }, 87 { Lang="ruby", Extensions={"rb","ruby", "pp", "rjs", "gemfile", "rakefile", "appfile", "appraisals", "berksfile", 88 "brewfile", "capfile", "cgi", "cheffile", "config.ru", "deliverfile", "fastfile", "fcgi", "gemspec", 89 "guardfile", "irbrc", "jbuilder", "podfile", "podspec", "prawn", "rabl", "rake", "rantfile", "rbx", 90 "scanfile", "simplecov", "snapfile", "thor", "thorfile", "vagrantfile" } }, 91 { Lang="rexx", Extensions={"rex", "rx", "the"} }, 92 { Lang="shellscript", Filenames={".zshrc", ".bashrc"} }, 93 { Lang="shellscript", Extensions={"sh", "bash", "zsh", "ebuild", "eclass"} }, 94 { Lang="smalltalk", Extensions={"st", "gst", "sq"} }, 95 { Lang="sybase", Extensions={"sp"} }, 96 { Lang="tcl", Extensions={"wish", "itcl"} }, 97 { Lang="tex", Extensions={"sty", "cls"} }, 98 { Lang="vb", Extensions={"bas", "basic", "bi", "vbs"} }, 99 { Lang="verilog", Extensions={"v"} }, 100 { Lang="html", Extensions={"htm", "xhtml", "twig", "jinja"} }, 101 { Lang="xml", Extensions={"sgm", "sgml", "nrm", "ent","hdr", "hub", "dtd", "glade", 102 "wml","vxml", "wml", "tld", "csproj","xsl", "ecf", "jnlp", "xsd", 103 "resx", "rng", "rss", "opml"} }, 104 { Lang="fsharp", Extensions={"fs","fsi","fsx"} }, 105 { Lang="informix", Extensions={"4gl"} }, 106 { Lang="blitzbasic", Extensions={"bb"} }, 107 { Lang="innosetup", Extensions={"iss"} }, 108 { Lang="lotus", Extensions={"ls"} }, 109 { Lang="ascend", Extensions={"a4c"} }, 110 { Lang="actionscript", Extensions={"as"} }, 111 { Lang="express", Extensions={"exp"} }, 112 { Lang="haxe", Extensions={"hx"} }, 113 { Lang="pyrex", Extensions={"pyx"} }, 114 115 { Lang="abap4", Extensions={"abp"} }, 116 { Lang="csharp", Extensions={"cs"} }, 117 { Lang="interlis", Extensions={"ili"} }, 118 { Lang="logtalk", Extensions={"lgt"} }, 119 { Lang="matlab", Extensions={"m"} }, 120 { Lang="nsis", Extensions={"nsi", "nsh"} }, 121 { Lang="bison", Extensions={"y"} }, 122 { Lang="squirrel", Extensions={"nut"} }, 123 { Lang="luban", Extensions={"lbn"} }, 124 { Lang="maya", Extensions={"mel"} }, 125 { Lang="nemerle", Extensions={"n"} }, 126 { Lang="paradox", Extensions={"sc"} }, 127 { Lang="netrexx", Extensions={"nrx"} }, 128 { Lang="clearbasic", Extensions={"cb"} }, 129 { Lang="graphviz", Extensions={"dot"} }, 130 { Lang="small", Extensions={"sma"} }, 131 { Lang="autoit", Extensions={"au3"} }, 132 { Lang="chill", Extensions={"chl"} }, 133 { Lang="autohotkey", Extensions={"ahk"} }, 134 { Lang="fame", Extensions={"fame"} }, 135 { Lang="modelica", Extensions={"mo"} }, 136 { Lang="maple", Extensions={"mpl"} }, 137 { Lang="jasmin", Extensions={"j"} }, 138 { Lang="snobol", Extensions={"sno"} }, 139 { Lang="icon", Extensions={"icn"} }, 140 { Lang="felix", Extensions={"flx"} }, 141 { Lang="lindenscript", Extensions={"lsl"} }, 142 { Lang="lilypond", Extensions={"ly"} }, 143 { Lang="nasal", Extensions={"nas"} }, 144 { Lang="clean", Extensions={"icl"} }, 145 { Lang="bibtex", Extensions={"bib"} }, 146 { Lang="python", Extensions={"py", "py3", "pyw", "pyi", "pyx", "pxd", "pxi", "rpy", "cpy", 147 "sconstruct", "gyp", "gypi", "snakefile", "wscript" } }, 148 { Lang="python", Filenames={"SConstruct"} }, 149 { Lang="rust", Extensions={"rs"} }, 150 151 { Lang="txt", Extensions={"text"} }, 152 { Lang="n3", Extensions={"ttl", "nt"} }, 153 { Lang="biferno", Extensions={"bfr"} }, 154 { Lang="scilab", Extensions={"sci", "sce"} }, 155 { Lang="msl", Extensions={"nbs"} }, 156 { Lang="yaml", Extensions={"yml"} }, 157 { Lang="vimscript", Extensions={"vim", "vimrc", "gvimrc"} }, 158 { Lang="purebasic", Extensions={"pb", "pbi", "pbf"} }, 159 { Lang="markdown", Extensions={"md", "markdown"} }, 160 { Lang="clojure", Extensions={"clj", "cljc", "cljs", "edn"} }, 161 { Lang="solidity", Extensions={"sol"} }, 162 { Lang="powershell", Extensions={"ps1", "psm1", "psd1"} }, 163 { Lang="typescript", Extensions={"ts"} }, 164 165 { Lang="exapunks", Extensions={"exapunks", "exa"} }, 166 { Lang="exapunks", Shebang=[[^(?i:NOTE\sEXAPUNKS)\b]] }, 167 168 { Lang="xml", Shebang=[[^\s*<\?xml\s+version=\"1\.0\"\s+[^(>)]*?>\s*$]] }, 169 { Lang="shellscript", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?([bd]ash|t?csh|[akz]?sh)]] }, 170 { Lang="makefile",Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?make]] }, 171 { Lang="awk", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?[gnm]?awk]] }, 172 { Lang="perl", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?perl]] }, 173 { Lang="python", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?python]] }, 174 { Lang="ruby", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?ruby]] }, 175 { Lang="php", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?php]] }, 176 { Lang="javascript", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?node]] } 177} 178 179