xref: /vim-8.2.3635/runtime/filetype.vim (revision 519cc559)
1071d4279SBram Moolenaar" Vim support file to detect file types
2071d4279SBram Moolenaar"
3071d4279SBram Moolenaar" Maintainer:	Bram Moolenaar <[email protected]>
4*519cc559SBram Moolenaar" Last Change:	2021 Nov 16
5071d4279SBram Moolenaar
6071d4279SBram Moolenaar" Listen very carefully, I will say this only once
7071d4279SBram Moolenaarif exists("did_load_filetypes")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaarlet did_load_filetypes = 1
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" Line continuation is used here, remove 'C' from 'cpoptions'
13071d4279SBram Moolenaarlet s:cpo_save = &cpo
14071d4279SBram Moolenaarset cpo&vim
15071d4279SBram Moolenaar
16071d4279SBram Moolenaaraugroup filetypedetect
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" Ignored extensions
19aebaf89fSBram Moolenaarif exists("*fnameescape")
2006481427SBram Moolenaarau BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
21aebaf89fSBram Moolenaar	\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
22071d4279SBram Moolenaarau BufNewFile,BufRead *~
23071d4279SBram Moolenaar	\ let s:name = expand("<afile>") |
24071d4279SBram Moolenaar	\ let s:short = substitute(s:name, '\~$', '', '') |
25071d4279SBram Moolenaar	\ if s:name != s:short && s:short != "" |
26aebaf89fSBram Moolenaar	\   exe "doau filetypedetect BufRead " . fnameescape(s:short) |
27071d4279SBram Moolenaar	\ endif |
28e37d50a5SBram Moolenaar	\ unlet! s:name s:short
291e015460SBram Moolenaarau BufNewFile,BufRead ?\+.in
30071d4279SBram Moolenaar	\ if expand("<afile>:t") != "configure.in" |
31aebaf89fSBram Moolenaar	\   exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
32071d4279SBram Moolenaar	\ endif
33aebaf89fSBram Moolenaarelseif &verbose > 0
34aebaf89fSBram Moolenaar  echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
35aebaf89fSBram Moolenaarendif
36071d4279SBram Moolenaar
37071d4279SBram Moolenaar" Pattern used to match file names which should not be inspected.
38071d4279SBram Moolenaar" Currently finds compressed files.
39071d4279SBram Moolenaarif !exists("g:ft_ignore_pat")
40071d4279SBram Moolenaar  let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
41071d4279SBram Moolenaarendif
42071d4279SBram Moolenaar
434317d9b4SBram Moolenaar" Function used for patterns that end in a star: don't set the filetype if the
444317d9b4SBram Moolenaar" file name matches ft_ignore_pat.
45723dd946SBram Moolenaar" When using this, the entry should probably be further down below with the
46723dd946SBram Moolenaar" other StarSetf() calls.
4734e0bfaaSBram Moolenaarfunc! s:StarSetf(ft)
484317d9b4SBram Moolenaar  if expand("<amatch>") !~ g:ft_ignore_pat
494317d9b4SBram Moolenaar    exe 'setf ' . a:ft
504317d9b4SBram Moolenaar  endif
5134e0bfaaSBram Moolenaarendfunc
52071d4279SBram Moolenaar
539049298fSBram Moolenaar" Vim help file
549049298fSBram Moolenaarau BufNewFile,BufRead $VIMRUNTIME/doc/*.txt	setf help
559049298fSBram Moolenaar
564317d9b4SBram Moolenaar" Abaqus or Trasys
57d09a206eSBram Moolenaarau BufNewFile,BufRead *.inp			call dist#ft#Check_inp()
58071d4279SBram Moolenaar
594c92e75dSBram Moolenaar" 8th (Firth-derivative)
604c92e75dSBram Moolenaarau BufNewFile,BufRead *.8th			setf 8th
614c92e75dSBram Moolenaar
62071d4279SBram Moolenaar" A-A-P recipe
63071d4279SBram Moolenaarau BufNewFile,BufRead *.aap			setf aap
64071d4279SBram Moolenaar
650dc065eeSBram Moolenaar" A2ps printing utility
66adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps
670dc065eeSBram Moolenaar
68d4755bb0SBram Moolenaar" ABAB/4
69d4755bb0SBram Moolenaarau BufNewFile,BufRead *.abap			setf abap
70d4755bb0SBram Moolenaar
71071d4279SBram Moolenaar" ABC music notation
72071d4279SBram Moolenaarau BufNewFile,BufRead *.abc			setf abc
73071d4279SBram Moolenaar
74071d4279SBram Moolenaar" ABEL
75071d4279SBram Moolenaarau BufNewFile,BufRead *.abl			setf abel
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" AceDB
78071d4279SBram Moolenaarau BufNewFile,BufRead *.wrm			setf acedb
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" Ada (83, 9X, 95)
81071d4279SBram Moolenaarau BufNewFile,BufRead *.adb,*.ads,*.ada		setf ada
82c81e5e79SBram Moolenaarif has("vms")
83c81e5e79SBram Moolenaar  au BufNewFile,BufRead *.gpr,*.ada_m,*.adc	setf ada
84c81e5e79SBram Moolenaarelse
85c81e5e79SBram Moolenaar  au BufNewFile,BufRead *.gpr			setf ada
86c81e5e79SBram Moolenaarendif
87071d4279SBram Moolenaar
88071d4279SBram Moolenaar" AHDL
89071d4279SBram Moolenaarau BufNewFile,BufRead *.tdf			setf ahdl
90071d4279SBram Moolenaar
912afc3b4fSBram Moolenaar" AIDL
922afc3b4fSBram Moolenaarau BufNewFile,BufRead *.aidl			setf aidl
932afc3b4fSBram Moolenaar
94071d4279SBram Moolenaar" AMPL
95071d4279SBram Moolenaarau BufNewFile,BufRead *.run			setf ampl
96071d4279SBram Moolenaar
97071d4279SBram Moolenaar" Ant
98071d4279SBram Moolenaarau BufNewFile,BufRead build.xml			setf ant
99071d4279SBram Moolenaar
100438f67a0SBram Moolenaar" Arduino
101438f67a0SBram Moolenaarau BufNewFile,BufRead *.ino,*.pde		setf arduino
102438f67a0SBram Moolenaar
103071d4279SBram Moolenaar" Apache config file
104adc2182cSBram Moolenaarau BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf		setf apache
105314dd79cSBram Moolenaarau BufNewFile,BufRead */etc/apache2/sites-*/*.com		setf apache
106071d4279SBram Moolenaar
107071d4279SBram Moolenaar" XA65 MOS6510 cross assembler
108071d4279SBram Moolenaarau BufNewFile,BufRead *.a65			setf a65
109071d4279SBram Moolenaar
1105c73622aSBram Moolenaar" Applescript
1115c73622aSBram Moolenaarau BufNewFile,BufRead *.scpt			setf applescript
1125c73622aSBram Moolenaar
113071d4279SBram Moolenaar" Applix ELF
114071d4279SBram Moolenaarau BufNewFile,BufRead *.am
115071d4279SBram Moolenaar	\ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
116071d4279SBram Moolenaar
117c0197e28SBram Moolenaar" ALSA configuration
1188e5af3e5SBram Moolenaarau BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf
119c0197e28SBram Moolenaar
120071d4279SBram Moolenaar" Arc Macro Language
121071d4279SBram Moolenaarau BufNewFile,BufRead *.aml			setf aml
122071d4279SBram Moolenaar
1230c5fa7d7SBram Moolenaar" APT config file
1240c5fa7d7SBram Moolenaarau BufNewFile,BufRead apt.conf		       setf aptconf
1250c5fa7d7SBram Moolenaarau BufNewFile,BufRead */.aptitude/config       setf aptconf
1260c5fa7d7SBram Moolenaarau BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
1270c5fa7d7SBram Moolenaar
128071d4279SBram Moolenaar" Arch Inventory file
129071d4279SBram Moolenaarau BufNewFile,BufRead .arch-inventory,=tagging-method	setf arch
130071d4279SBram Moolenaar
131071d4279SBram Moolenaar" ART*Enterprise (formerly ART-IM)
132071d4279SBram Moolenaarau BufNewFile,BufRead *.art			setf art
133071d4279SBram Moolenaar
134ac7bd638SBram Moolenaar" AsciiDoc
135ca63501fSBram Moolenaarau BufNewFile,BufRead *.asciidoc,*.adoc		setf asciidoc
136ac7bd638SBram Moolenaar
137071d4279SBram Moolenaar" ASN.1
138071d4279SBram Moolenaarau BufNewFile,BufRead *.asn,*.asn1		setf asn
139071d4279SBram Moolenaar
140071d4279SBram Moolenaar" Active Server Pages (with Visual Basic Script)
141071d4279SBram Moolenaarau BufNewFile,BufRead *.asa
142071d4279SBram Moolenaar	\ if exists("g:filetype_asa") |
143071d4279SBram Moolenaar	\   exe "setf " . g:filetype_asa |
144071d4279SBram Moolenaar	\ else |
145071d4279SBram Moolenaar	\   setf aspvbs |
146071d4279SBram Moolenaar	\ endif
147071d4279SBram Moolenaar
148071d4279SBram Moolenaar" Active Server Pages (with Perl or Visual Basic Script)
149071d4279SBram Moolenaarau BufNewFile,BufRead *.asp
150071d4279SBram Moolenaar	\ if exists("g:filetype_asp") |
151071d4279SBram Moolenaar	\   exe "setf " . g:filetype_asp |
152071d4279SBram Moolenaar	\ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" |
153071d4279SBram Moolenaar	\   setf aspperl |
154071d4279SBram Moolenaar	\ else |
155071d4279SBram Moolenaar	\   setf aspvbs |
156071d4279SBram Moolenaar	\ endif
157071d4279SBram Moolenaar
158071d4279SBram Moolenaar" Grub (must be before catch *.lst)
1598e5af3e5SBram Moolenaarau BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub
160071d4279SBram Moolenaar
161071d4279SBram Moolenaar" Assembly (all kinds)
162071d4279SBram Moolenaar" *.lst is not pure assembly, it has two extra columns (address, byte codes)
163d09a206eSBram Moolenaarau BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst	call dist#ft#FTasm()
164071d4279SBram Moolenaar
165071d4279SBram Moolenaar" Macro (VAX)
166071d4279SBram Moolenaarau BufNewFile,BufRead *.mar			setf vmasm
167071d4279SBram Moolenaar
168071d4279SBram Moolenaar" Atlas
169071d4279SBram Moolenaarau BufNewFile,BufRead *.atl,*.as		setf atlas
170071d4279SBram Moolenaar
17174b99f6aSBram Moolenaar" Atom is based on XML
17274b99f6aSBram Moolenaarau BufNewFile,BufRead *.atom			setf xml
17374b99f6aSBram Moolenaar
174c81e5e79SBram Moolenaar" Autoit v3
175c81e5e79SBram Moolenaarau BufNewFile,BufRead *.au3			setf autoit
176c81e5e79SBram Moolenaar
17734e0bfaaSBram Moolenaar" Autohotkey
17834e0bfaaSBram Moolenaarau BufNewFile,BufRead *.ahk			setf autohotkey
17934e0bfaaSBram Moolenaar
180071d4279SBram Moolenaar" Automake
181899dddf8SBram Moolenaarau BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am	setf automake
182071d4279SBram Moolenaar
18342eeac35SBram Moolenaar" Autotest .at files are actually m4
18442eeac35SBram Moolenaarau BufNewFile,BufRead *.at			setf m4
18542eeac35SBram Moolenaar
186071d4279SBram Moolenaar" Avenue
187071d4279SBram Moolenaarau BufNewFile,BufRead *.ave			setf ave
188071d4279SBram Moolenaar
189071d4279SBram Moolenaar" Awk
1909a5c553fSBram Moolenaarau BufNewFile,BufRead *.awk,*.gawk		setf awk
191071d4279SBram Moolenaar
192071d4279SBram Moolenaar" B
193071d4279SBram Moolenaarau BufNewFile,BufRead *.mch,*.ref,*.imp		setf b
194071d4279SBram Moolenaar
195071d4279SBram Moolenaar" BASIC or Visual Basic
196d09a206eSBram Moolenaarau BufNewFile,BufRead *.bas			call dist#ft#FTVB("basic")
197071d4279SBram Moolenaar
19853bfca22SBram Moolenaar" Visual Basic Script (close to Visual Basic) or Visual Basic .NET
19953bfca22SBram Moolenaarau BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl	setf vb
200071d4279SBram Moolenaar
201c81e5e79SBram Moolenaar" IBasic file (similar to QBasic)
202c81e5e79SBram Moolenaarau BufNewFile,BufRead *.iba,*.ibi		setf ibasic
203c81e5e79SBram Moolenaar
204c81e5e79SBram Moolenaar" FreeBasic file (similar to QBasic)
205c81e5e79SBram Moolenaarau BufNewFile,BufRead *.fb,*.bi			setf freebasic
206c81e5e79SBram Moolenaar
207071d4279SBram Moolenaar" Batch file for MSDOS.
2088299df96SBram Moolenaarau BufNewFile,BufRead *.bat,*.sys		setf dosbatch
209071d4279SBram Moolenaar" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
210071d4279SBram Moolenaarau BufNewFile,BufRead *.cmd
211071d4279SBram Moolenaar	\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
212071d4279SBram Moolenaar
213071d4279SBram Moolenaar" Batch file for 4DOS
214d09a206eSBram Moolenaarau BufNewFile,BufRead *.btm			call dist#ft#FTbtm()
215071d4279SBram Moolenaar
216071d4279SBram Moolenaar" BC calculator
217071d4279SBram Moolenaarau BufNewFile,BufRead *.bc			setf bc
218071d4279SBram Moolenaar
219071d4279SBram Moolenaar" BDF font
220071d4279SBram Moolenaarau BufNewFile,BufRead *.bdf			setf bdf
221071d4279SBram Moolenaar
2229bbd883bSBram Moolenaar" Beancount
2239bbd883bSBram Moolenaarau BufNewFile,BufRead *.beancount		setf beancount
2249bbd883bSBram Moolenaar
225071d4279SBram Moolenaar" BibTeX bibliography database file
226071d4279SBram Moolenaarau BufNewFile,BufRead *.bib			setf bib
227071d4279SBram Moolenaar
228437df8f4SBram Moolenaar" BibTeX Bibliography Style
229437df8f4SBram Moolenaarau BufNewFile,BufRead *.bst			setf bst
230437df8f4SBram Moolenaar
231071d4279SBram Moolenaar" BIND configuration
232e0720cbfSBram Moolenaar" sudoedit uses namedXXXX.conf
23301164a65SBram Moolenaarau BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key	setf named
234071d4279SBram Moolenaar
235071d4279SBram Moolenaar" BIND zone
236071d4279SBram Moolenaarau BufNewFile,BufRead named.root		setf bindzone
237d09a206eSBram Moolenaarau BufNewFile,BufRead *.db			call dist#ft#BindzoneCheck('')
238071d4279SBram Moolenaar
239071d4279SBram Moolenaar" Blank
240071d4279SBram Moolenaarau BufNewFile,BufRead *.bl			setf blank
241071d4279SBram Moolenaar
2420ab2c5adSBram Moolenaar" Blkid cache file
243adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old   setf xml
2440ab2c5adSBram Moolenaar
24540d235e7SBram Moolenaar" BSDL
2460fc1288aSBram Moolenaarau BufNewFile,BufRead *bsd,*.bsdl		setf bsdl
24740d235e7SBram Moolenaar
24860cce2fbSBram Moolenaar" Bazel (http://bazel.io)
2494488f5a5SBram Moolenaarautocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE	setf bzl
25068563937SBram Moolenaarif has("fname_case")
25139170e2dSBram Moolenaar  " There is another check for BUILD further below.
2524488f5a5SBram Moolenaar  autocmd BufRead,BufNewFile *.BUILD,BUILD		setf bzl
25368563937SBram Moolenaarendif
25460cce2fbSBram Moolenaar
255071d4279SBram Moolenaar" C or lpc
256d09a206eSBram Moolenaarau BufNewFile,BufRead *.c			call dist#ft#FTlpc()
25740962ec9SBram Moolenaarau BufNewFile,BufRead *.lpc,*.ulpc		setf lpc
258071d4279SBram Moolenaar
259071d4279SBram Moolenaar" Calendar
2604317d9b4SBram Moolenaarau BufNewFile,BufRead calendar			setf calendar
261071d4279SBram Moolenaar
262071d4279SBram Moolenaar" C#
263071d4279SBram Moolenaarau BufNewFile,BufRead *.cs			setf cs
264071d4279SBram Moolenaar
26534700a6aSBram Moolenaar" CSDL
26634700a6aSBram Moolenaarau BufNewFile,BufRead *.csdl			setf csdl
26734700a6aSBram Moolenaar
26800a927d6SBram Moolenaar" Cabal
26900a927d6SBram Moolenaarau BufNewFile,BufRead *.cabal			setf cabal
27000a927d6SBram Moolenaar
27134e0bfaaSBram Moolenaar" Cdrdao TOC
27234e0bfaaSBram Moolenaarau BufNewFile,BufRead *.toc			setf cdrtoc
27334e0bfaaSBram Moolenaar
274aba8857aSBram Moolenaar" Cdrdao config
2758e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao	setf cdrdaoconf
276aba8857aSBram Moolenaar
277a5fac54aSBram Moolenaar" Cfengine
278a5fac54aSBram Moolenaarau BufNewFile,BufRead cfengine.conf		setf cfengine
279a5fac54aSBram Moolenaar
28000a927d6SBram Moolenaar" ChaiScript
28100a927d6SBram Moolenaarau BufRead,BufNewFile *.chai			setf chaiscript
28200a927d6SBram Moolenaar
283071d4279SBram Moolenaar" Comshare Dimension Definition Language
284071d4279SBram Moolenaarau BufNewFile,BufRead *.cdl			setf cdl
285071d4279SBram Moolenaar
286c81e5e79SBram Moolenaar" Conary Recipe
287c81e5e79SBram Moolenaarau BufNewFile,BufRead *.recipe			setf conaryrecipe
288c81e5e79SBram Moolenaar
289071d4279SBram Moolenaar" Controllable Regex Mutilator
290071d4279SBram Moolenaarau BufNewFile,BufRead *.crm			setf crm
291071d4279SBram Moolenaar
292071d4279SBram Moolenaar" Cyn++
293071d4279SBram Moolenaarau BufNewFile,BufRead *.cyn			setf cynpp
294071d4279SBram Moolenaar
295071d4279SBram Moolenaar" Cynlib
296071d4279SBram Moolenaar" .cc and .cpp files can be C++ or Cynlib.
297071d4279SBram Moolenaarau BufNewFile,BufRead *.cc
298071d4279SBram Moolenaar	\ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif
299071d4279SBram Moolenaarau BufNewFile,BufRead *.cpp
300071d4279SBram Moolenaar	\ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif
301071d4279SBram Moolenaar
302071d4279SBram Moolenaar" C++
3035c73622aSBram Moolenaarau BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
304071d4279SBram Moolenaarif has("fname_case")
3055c73622aSBram Moolenaar  au BufNewFile,BufRead *.C,*.H setf cpp
306071d4279SBram Moolenaarendif
307071d4279SBram Moolenaar
308aba8857aSBram Moolenaar" .h files can be C, Ch C++, ObjC or ObjC++.
309aba8857aSBram Moolenaar" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
310aba8857aSBram Moolenaar" detected automatically.
311d09a206eSBram Moolenaarau BufNewFile,BufRead *.h			call dist#ft#FTheader()
312071d4279SBram Moolenaar
313071d4279SBram Moolenaar" Ch (CHscript)
314071d4279SBram Moolenaarau BufNewFile,BufRead *.chf			setf ch
315071d4279SBram Moolenaar
316071d4279SBram Moolenaar" TLH files are C++ headers generated by Visual C++'s #import from typelibs
317071d4279SBram Moolenaarau BufNewFile,BufRead *.tlh			setf cpp
318071d4279SBram Moolenaar
319071d4279SBram Moolenaar" Cascading Style Sheets
320071d4279SBram Moolenaarau BufNewFile,BufRead *.css			setf css
321071d4279SBram Moolenaar
322071d4279SBram Moolenaar" Century Term Command Scripts (*.cmd too)
323071d4279SBram Moolenaarau BufNewFile,BufRead *.con			setf cterm
324071d4279SBram Moolenaar
325071d4279SBram Moolenaar" Changelog
3260022675aSBram Moolenaarau BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog
327899dddf8SBram Moolenaar					\	setf debchangelog
328899dddf8SBram Moolenaar
329899dddf8SBram Moolenaarau BufNewFile,BufRead [cC]hange[lL]og
330899dddf8SBram Moolenaar	\  if getline(1) =~ '; urgency='
331899dddf8SBram Moolenaar	\|   setf debchangelog
332899dddf8SBram Moolenaar	\| else
333899dddf8SBram Moolenaar	\|   setf changelog
334899dddf8SBram Moolenaar	\| endif
335899dddf8SBram Moolenaar
336899dddf8SBram Moolenaarau BufNewFile,BufRead NEWS
337899dddf8SBram Moolenaar	\  if getline(1) =~ '; urgency='
338899dddf8SBram Moolenaar	\|   setf debchangelog
339899dddf8SBram Moolenaar	\| endif
340071d4279SBram Moolenaar
341071d4279SBram Moolenaar" CHILL
342071d4279SBram Moolenaarau BufNewFile,BufRead *..ch			setf chill
343071d4279SBram Moolenaar
344071d4279SBram Moolenaar" Changes for WEB and CWEB or CHILL
345d09a206eSBram Moolenaarau BufNewFile,BufRead *.ch			call dist#ft#FTchange()
346071d4279SBram Moolenaar
34757657d85SBram Moolenaar" ChordPro
34857657d85SBram Moolenaarau BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro	setf chordpro
34957657d85SBram Moolenaar
350071d4279SBram Moolenaar" Clean
351071d4279SBram Moolenaarau BufNewFile,BufRead *.dcl,*.icl		setf clean
352071d4279SBram Moolenaar
353071d4279SBram Moolenaar" Clever
354071d4279SBram Moolenaarau BufNewFile,BufRead *.eni			setf cl
355071d4279SBram Moolenaar
356071d4279SBram Moolenaar" Clever or dtd
357d09a206eSBram Moolenaarau BufNewFile,BufRead *.ent			call dist#ft#FTent()
358071d4279SBram Moolenaar
3594770d09aSBram Moolenaar" Clipper (or FoxPro; could also be eviews)
360071d4279SBram Moolenaarau BufNewFile,BufRead *.prg
361071d4279SBram Moolenaar	\ if exists("g:filetype_prg") |
362071d4279SBram Moolenaar	\   exe "setf " . g:filetype_prg |
363071d4279SBram Moolenaar	\ else |
364071d4279SBram Moolenaar	\   setf clipper |
365071d4279SBram Moolenaar	\ endif
366071d4279SBram Moolenaar
367fa13eef3SBram Moolenaar" Clojure
368f2571c61SBram Moolenaarau BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc		setf clojure
369fa13eef3SBram Moolenaar
370c1e37901SBram Moolenaar" Cmake
371c1e37901SBram Moolenaarau BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in		setf cmake
372c1e37901SBram Moolenaar
373c81e5e79SBram Moolenaar" Cmusrc
3748e5af3e5SBram Moolenaarau BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc
375c81e5e79SBram Moolenaarau BufNewFile,BufRead */cmus/{rc,*.theme}			setf cmusrc
376c81e5e79SBram Moolenaar
377071d4279SBram Moolenaar" Cobol
378899dddf8SBram Moolenaarau BufNewFile,BufRead *.cbl,*.cob,*.lib	setf cobol
379899dddf8SBram Moolenaar"   cobol or zope form controller python script? (heuristic)
380899dddf8SBram Moolenaarau BufNewFile,BufRead *.cpy
381899dddf8SBram Moolenaar	\ if getline(1) =~ '^##' |
382899dddf8SBram Moolenaar	\   setf python |
383899dddf8SBram Moolenaar	\ else |
384899dddf8SBram Moolenaar	\   setf cobol |
385899dddf8SBram Moolenaar	\ endif
386071d4279SBram Moolenaar
387aba8857aSBram Moolenaar" Coco/R
388aba8857aSBram Moolenaarau BufNewFile,BufRead *.atg			setf coco
389aba8857aSBram Moolenaar
390071d4279SBram Moolenaar" Cold Fusion
391071d4279SBram Moolenaarau BufNewFile,BufRead *.cfm,*.cfi,*.cfc		setf cf
392071d4279SBram Moolenaar
393071d4279SBram Moolenaar" Configure scripts
394071d4279SBram Moolenaarau BufNewFile,BufRead configure.in,configure.ac setf config
395071d4279SBram Moolenaar
396f3caeb63SAustin Gatlin" CUDA Compute Unified Device Architecture
39740962ec9SBram Moolenaarau BufNewFile,BufRead *.cu,*.cuh		setf cuda
398aba8857aSBram Moolenaar
399ab067a21SBram Moolenaar" Dockerfile; Podman uses the same syntax with name Containerfile
4001ff14ba2SBram Moolenaarau BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile	setf dockerfile
40134401ccaSBram Moolenaar
402071d4279SBram Moolenaar" WildPackets EtherPeek Decoder
403071d4279SBram Moolenaarau BufNewFile,BufRead *.dcd			setf dcd
404071d4279SBram Moolenaar
405071d4279SBram Moolenaar" Enlightenment configuration files
406071d4279SBram Moolenaarau BufNewFile,BufRead *enlightenment/*.cfg	setf c
407071d4279SBram Moolenaar
408071d4279SBram Moolenaar" Eterm
409071d4279SBram Moolenaarau BufNewFile,BufRead *Eterm/*.cfg		setf eterm
410071d4279SBram Moolenaar
411f3caeb63SAustin Gatlin" Elixir or Euphoria
412f3caeb63SAustin Gatlinau BufNewFile,BufRead *.ex call dist#ft#ExCheck()
413f3caeb63SAustin Gatlin
414f3caeb63SAustin Gatlin" Elixir
415f3caeb63SAustin Gatlinau BufRead,BufNewFile mix.lock,*.exs setf elixir
416f3caeb63SAustin Gatlinau BufRead,BufNewFile *.eex,*.leex setf eelixir
417f3caeb63SAustin Gatlin
418251835e1SBram Moolenaar" Euphoria 3 or 4
419f3caeb63SAustin Gatlinau BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw  call dist#ft#EuphoriaCheck()
420251835e1SBram Moolenaarif has("fname_case")
421d09a206eSBram Moolenaar   au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW  call dist#ft#EuphoriaCheck()
422251835e1SBram Moolenaarendif
423251835e1SBram Moolenaar
424071d4279SBram Moolenaar" Lynx config files
425071d4279SBram Moolenaarau BufNewFile,BufRead lynx.cfg			setf lynx
426071d4279SBram Moolenaar
4276bc00699SBram Moolenaar" Modula-3 configuration language (must be before *.cfg and *makefile)
4286bc00699SBram Moolenaarau BufNewFile,BufRead *.quake,cm3.cfg		setf m3quake
4296bc00699SBram Moolenaarau BufNewFile,BufRead m3makefile,m3overrides	setf m3build
4306bc00699SBram Moolenaar
431071d4279SBram Moolenaar" Quake
432071d4279SBram Moolenaarau BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg	setf quake
433071d4279SBram Moolenaarau BufNewFile,BufRead *quake[1-3]/*.cfg			setf quake
434071d4279SBram Moolenaar
435071d4279SBram Moolenaar" Quake C
436071d4279SBram Moolenaarau BufNewFile,BufRead *.qc			setf c
437071d4279SBram Moolenaar
438071d4279SBram Moolenaar" Configure files
439071d4279SBram Moolenaarau BufNewFile,BufRead *.cfg			setf cfg
440071d4279SBram Moolenaar
4415e3dae8bSBram Moolenaar" Cucumber
4425e3dae8bSBram Moolenaarau BufNewFile,BufRead *.feature			setf cucumber
4435e3dae8bSBram Moolenaar
444071d4279SBram Moolenaar" Communicating Sequential Processes
445071d4279SBram Moolenaarau BufNewFile,BufRead *.csp,*.fdr		setf csp
446071d4279SBram Moolenaar
447071d4279SBram Moolenaar" CUPL logic description and simulation
448071d4279SBram Moolenaarau BufNewFile,BufRead *.pld			setf cupl
449071d4279SBram Moolenaarau BufNewFile,BufRead *.si			setf cuplsim
450071d4279SBram Moolenaar
451afbdb905SBram Moolenaar" Dart
452afbdb905SBram Moolenaarau BufRead,BufNewfile *.dart,*.drt		setf dart
453afbdb905SBram Moolenaar
454071d4279SBram Moolenaar" Debian Control
455071d4279SBram Moolenaarau BufNewFile,BufRead */debian/control		setf debcontrol
456aba8857aSBram Moolenaarau BufNewFile,BufRead control
457aba8857aSBram Moolenaar	\  if getline(1) =~ '^Source:'
458aba8857aSBram Moolenaar	\|   setf debcontrol
459aba8857aSBram Moolenaar	\| endif
460071d4279SBram Moolenaar
46185eee130SBram Moolenaar" Debian Copyright
46285eee130SBram Moolenaarau BufNewFile,BufRead */debian/copyright	setf debcopyright
46385eee130SBram Moolenaarau BufNewFile,BufRead copyright
46485eee130SBram Moolenaar	\  if getline(1) =~ '^Format:'
46585eee130SBram Moolenaar	\|   setf debcopyright
46685eee130SBram Moolenaar	\| endif
46785eee130SBram Moolenaar
468d2cec5b0SBram Moolenaar" Debian Sources.list
469adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/apt/sources.list		setf debsources
470adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/apt/sources.list.d/*.list	setf debsources
471d2cec5b0SBram Moolenaar
472aba8857aSBram Moolenaar" Deny hosts
473aba8857aSBram Moolenaarau BufNewFile,BufRead denyhosts.conf		setf denyhosts
474aba8857aSBram Moolenaar
4758e5af3e5SBram Moolenaar" dnsmasq(8) configuration files
47620f90cf9SBram Moolenaarau BufNewFile,BufRead */etc/dnsmasq.conf	setf dnsmasq
4778e5af3e5SBram Moolenaar
478071d4279SBram Moolenaar" ROCKLinux package description
479071d4279SBram Moolenaarau BufNewFile,BufRead *.desc			setf desc
480071d4279SBram Moolenaar
481aba8857aSBram Moolenaar" the D language or dtrace
482d09a206eSBram Moolenaarau BufNewFile,BufRead *.d			call dist#ft#DtraceCheck()
483071d4279SBram Moolenaar
484071d4279SBram Moolenaar" Desktop files
485f1f0ff95SBram Moolenaarau BufNewFile,BufRead *.desktop,*.directory	setf desktop
486071d4279SBram Moolenaar
4870dc065eeSBram Moolenaar" Dict config
4880dc065eeSBram Moolenaarau BufNewFile,BufRead dict.conf,.dictrc		setf dictconf
4890dc065eeSBram Moolenaar
4900dc065eeSBram Moolenaar" Dictd config
491be01090eSBram Moolenaarau BufNewFile,BufRead dictd*.conf		setf dictdconf
4920dc065eeSBram Moolenaar
493071d4279SBram Moolenaar" Diff files
49474675a66SBram Moolenaarau BufNewFile,BufRead *.diff,*.rej		setf diff
49574675a66SBram Moolenaarau BufNewFile,BufRead *.patch
49674675a66SBram Moolenaar	\ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
49774675a66SBram Moolenaar	\   setf gitsendemail |
49874675a66SBram Moolenaar	\ else |
49974675a66SBram Moolenaar	\   setf diff |
50074675a66SBram Moolenaar	\ endif
501071d4279SBram Moolenaar
502071d4279SBram Moolenaar" Dircolors
503adc2182cSBram Moolenaarau BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS	setf dircolors
504071d4279SBram Moolenaar
505071d4279SBram Moolenaar" Diva (with Skill) or InstallShield
506071d4279SBram Moolenaarau BufNewFile,BufRead *.rul
507071d4279SBram Moolenaar	\ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' |
508071d4279SBram Moolenaar	\   setf ishd |
509071d4279SBram Moolenaar	\ else |
510071d4279SBram Moolenaar	\   setf diva |
511071d4279SBram Moolenaar	\ endif
512071d4279SBram Moolenaar
513071d4279SBram Moolenaar" DCL (Digital Command Language - vms) or DNS zone file
514d09a206eSBram Moolenaarau BufNewFile,BufRead *.com			call dist#ft#BindzoneCheck('dcl')
515071d4279SBram Moolenaar
516071d4279SBram Moolenaar" DOT
517f8ddb257SBram Moolenaarau BufNewFile,BufRead *.dot,*.gv		setf dot
518071d4279SBram Moolenaar
519beef4eedSBram Moolenaar" Dune
520beef4eedSBram Moolenaarau BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace setf dune
521beef4eedSBram Moolenaar
522071d4279SBram Moolenaar" Dylan - lid files
523071d4279SBram Moolenaarau BufNewFile,BufRead *.lid			setf dylanlid
524071d4279SBram Moolenaar
525071d4279SBram Moolenaar" Dylan - intr files (melange)
526071d4279SBram Moolenaarau BufNewFile,BufRead *.intr			setf dylanintr
527071d4279SBram Moolenaar
528071d4279SBram Moolenaar" Dylan
529071d4279SBram Moolenaarau BufNewFile,BufRead *.dylan			setf dylan
530071d4279SBram Moolenaar
531071d4279SBram Moolenaar" Microsoft Module Definition
532071d4279SBram Moolenaarau BufNewFile,BufRead *.def			setf def
533071d4279SBram Moolenaar
534071d4279SBram Moolenaar" Dracula
535071d4279SBram Moolenaarau BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe	setf dracula
536071d4279SBram Moolenaar
53790df5507SBram Moolenaar" Datascript
53890df5507SBram Moolenaarau BufNewFile,BufRead *.ds			setf datascript
53990df5507SBram Moolenaar
540dea56111SBastian Venthur" dsl: DSSSL or Structurizr
541dea56111SBastian Venthurau BufNewFile,BufRead *.dsl
542dea56111SBastian Venthur	\ if getline(1) =~ '^\s*<\!' |
543dea56111SBastian Venthur	\   setf dsl |
544dea56111SBastian Venthur	\ else |
545dea56111SBastian Venthur	\   setf structurizr |
546dea56111SBastian Venthur	\ endif
547071d4279SBram Moolenaar
548071d4279SBram Moolenaar" DTD (Document Type Definition for XML)
549071d4279SBram Moolenaarau BufNewFile,BufRead *.dtd			setf dtd
550071d4279SBram Moolenaar
55197cc2384SBram Moolenaar" DTS/DSTI (device tree files)
55297cc2384SBram Moolenaarau BufNewFile,BufRead *.dts,*.dtsi		setf dts
55397cc2384SBram Moolenaar
554369b6f57SBram Moolenaar" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
555369b6f57SBram Moolenaarau BufNewFile,BufRead *.ed\(f\|if\|o\)		setf edif
556369b6f57SBram Moolenaarau BufNewFile,BufRead *.edn
557369b6f57SBram Moolenaar	\ if getline(1) =~ '^\s*(\s*edif\>' |
558369b6f57SBram Moolenaar	\   setf edif |
559369b6f57SBram Moolenaar	\ else |
560369b6f57SBram Moolenaar	\   setf clojure |
561369b6f57SBram Moolenaar	\ endif
562071d4279SBram Moolenaar
563d0796909SBram Moolenaar" EditorConfig (close enough to dosini)
564d0796909SBram Moolenaarau BufNewFile,BufRead .editorconfig		setf dosini
565d0796909SBram Moolenaar
566071d4279SBram Moolenaar" Embedix Component Description
567071d4279SBram Moolenaarau BufNewFile,BufRead *.ecd			setf ecd
568071d4279SBram Moolenaar
5690858917eSBram Moolenaar" Eiffel or Specman or Euphoria
570d09a206eSBram Moolenaarau BufNewFile,BufRead *.e,*.E			call dist#ft#FTe()
571071d4279SBram Moolenaar
572071d4279SBram Moolenaar" Elinks configuration
5735f36d5fbSBram Moolenaarau BufNewFile,BufRead elinks.conf		setf elinks
574071d4279SBram Moolenaar
575aba8857aSBram Moolenaar" ERicsson LANGuage; Yaws is erlang too
576c236c16dSBram Moolenaarau BufNewFile,BufRead *.erl,*.hrl,*.yaws	setf erlang
577071d4279SBram Moolenaar
5780016fd2eSBram Moolenaar" Elm
5790016fd2eSBram Moolenaarau BufNewFile,BufRead *.elm			setf elm
5800016fd2eSBram Moolenaar
581071d4279SBram Moolenaar" Elm Filter Rules file
582071d4279SBram Moolenaarau BufNewFile,BufRead filter-rules		setf elmfilt
583071d4279SBram Moolenaar
58426a60b45SBram Moolenaar" ESMTP rc file
58526a60b45SBram Moolenaarau BufNewFile,BufRead *esmtprc			setf esmtprc
58626a60b45SBram Moolenaar
587071d4279SBram Moolenaar" ESQL-C
588071d4279SBram Moolenaarau BufNewFile,BufRead *.ec,*.EC			setf esqlc
589071d4279SBram Moolenaar
590c930a3ccSBram Moolenaar" Esterel
591c930a3ccSBram Moolenaarau BufNewFile,BufRead *.strl			setf esterel
592c930a3ccSBram Moolenaar
593071d4279SBram Moolenaar" Essbase script
594071d4279SBram Moolenaarau BufNewFile,BufRead *.csc			setf csc
595071d4279SBram Moolenaar
596071d4279SBram Moolenaar" Exim
597071d4279SBram Moolenaarau BufNewFile,BufRead exim.conf			setf exim
598071d4279SBram Moolenaar
599071d4279SBram Moolenaar" Expect
600071d4279SBram Moolenaarau BufNewFile,BufRead *.exp			setf expect
601071d4279SBram Moolenaar
602071d4279SBram Moolenaar" Exports
603071d4279SBram Moolenaarau BufNewFile,BufRead exports			setf exports
604071d4279SBram Moolenaar
6054a74803eSBram Moolenaar" Falcon
6064a74803eSBram Moolenaarau BufNewFile,BufRead *.fal			setf falcon
6074a74803eSBram Moolenaar
6088cd213c0SBram Moolenaar" Fantom
6098cd213c0SBram Moolenaarau BufNewFile,BufRead *.fan,*.fwt		setf fan
6108cd213c0SBram Moolenaar
611520470a9SBram Moolenaar" Factor
612520470a9SBram Moolenaarau BufNewFile,BufRead *.factor			setf factor
613520470a9SBram Moolenaar
614402115f1SBram Moolenaar" Fennel
615402115f1SBram Moolenaarautocmd BufRead,BufNewFile *.fnl		setf fennel
616402115f1SBram Moolenaar
617071d4279SBram Moolenaar" Fetchmail RC file
618071d4279SBram Moolenaarau BufNewFile,BufRead .fetchmailrc		setf fetchmail
619071d4279SBram Moolenaar
620b1b163efSBram Moolenaar" Fish shell
621b1b163efSBram Moolenaarau BufNewFile,BufRead *.fish			setf fish
622b1b163efSBram Moolenaar
6235c73622aSBram Moolenaar" FlexWiki - disabled, because it has side effects when a .wiki file
6245c73622aSBram Moolenaar" is not actually FlexWiki
6255c73622aSBram Moolenaar"au BufNewFile,BufRead *.wiki			setf flexwiki
626437df8f4SBram Moolenaar
627071d4279SBram Moolenaar" Focus Executable
628071d4279SBram Moolenaarau BufNewFile,BufRead *.fex,*.focexec		setf focexec
629071d4279SBram Moolenaar
630071d4279SBram Moolenaar" Focus Master file (but not for auto.master)
631071d4279SBram Moolenaarau BufNewFile,BufRead auto.master		setf conf
632071d4279SBram Moolenaarau BufNewFile,BufRead *.mas,*.master		setf master
633071d4279SBram Moolenaar
634071d4279SBram Moolenaar" Forth
635d473c8c1SBram Moolenaarau BufNewFile,BufRead *.fs,*.ft,*.fth		setf forth
636071d4279SBram Moolenaar
637aba8857aSBram Moolenaar" Reva Forth
638aba8857aSBram Moolenaarau BufNewFile,BufRead *.frt			setf reva
639aba8857aSBram Moolenaar
640071d4279SBram Moolenaar" Fortran
641c81e5e79SBram Moolenaarif has("fname_case")
64224580384SBram Moolenaar  au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08	 setf fortran
643c81e5e79SBram Moolenaarendif
64424580384SBram Moolenaarau BufNewFile,BufRead   *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08  setf fortran
645071d4279SBram Moolenaar
646e37d50a5SBram Moolenaar" Framescript
647e37d50a5SBram Moolenaarau BufNewFile,BufRead *.fsl			setf framescript
648e37d50a5SBram Moolenaar
649071d4279SBram Moolenaar" FStab
650910f66f9SBram Moolenaarau BufNewFile,BufRead fstab,mtab		setf fstab
651071d4279SBram Moolenaar
652071d4279SBram Moolenaar" GDB command files
653782b4bbcSBram Moolenaarau BufNewFile,BufRead .gdbinit,gdbinit		setf gdb
654071d4279SBram Moolenaar
655071d4279SBram Moolenaar" GDMO
656071d4279SBram Moolenaarau BufNewFile,BufRead *.mo,*.gdmo		setf gdmo
657071d4279SBram Moolenaar
658071d4279SBram Moolenaar" Gedcom
6595c73622aSBram Moolenaarau BufNewFile,BufRead *.ged,lltxxxxx.txt	setf gedcom
660071d4279SBram Moolenaar
661fcde67c9SBram Moolenaar" Gemtext
662fcde67c9SBram Moolenaarau BufNewFile,BufRead *.gmi,*.gemini		setf gemtext
663fcde67c9SBram Moolenaar
664b34f3374SBram Moolenaar" Gift (Moodle)
665b34f3374SBram Moolenaarautocmd BufRead,BufNewFile *.gift		setf gift
666b34f3374SBram Moolenaar
667aba8857aSBram Moolenaar" Git
6687571d55fSBram Moolenaarau BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG	setf gitcommit
669d474686aSBram Moolenaarau BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig	setf gitconfig
670543b7ef7SBram Moolenaarau BufNewFile,BufRead */.config/git/config			setf gitconfig
671d474686aSBram Moolenaarau BufNewFile,BufRead .gitmodules,*.git/modules/*/config	setf gitconfig
67232efaf61SBram Moolenaarif !empty($XDG_CONFIG_HOME)
67332efaf61SBram Moolenaar  au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config		setf gitconfig
67432efaf61SBram Moolenaarendif
6758e5af3e5SBram Moolenaarau BufNewFile,BufRead git-rebase-todo		setf gitrebase
67674675a66SBram Moolenaarau BufRead,BufNewFile .gitsendemail.msg.??????	setf gitsendemail
6778e5af3e5SBram Moolenaarau BufNewFile,BufRead .msg.[0-9]*
678aba8857aSBram Moolenaar      \ if getline(1) =~ '^From.*# This line is ignored.$' |
679aba8857aSBram Moolenaar      \   setf gitsendemail |
680aba8857aSBram Moolenaar      \ endif
6819d98fe9cSBram Moolenaarau BufNewFile,BufRead *.git/*
682aba8857aSBram Moolenaar      \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
683aba8857aSBram Moolenaar      \   setf git |
684aba8857aSBram Moolenaar      \ endif
685aba8857aSBram Moolenaar
686071d4279SBram Moolenaar" Gkrellmrc
687071d4279SBram Moolenaarau BufNewFile,BufRead gkrellmrc,gkrellmrc_?	setf gkrellmrc
688071d4279SBram Moolenaar
689071d4279SBram Moolenaar" GP scripts (2.0 and onward)
69018144c84SBram Moolenaarau BufNewFile,BufRead *.gp,.gprc		setf gp
691071d4279SBram Moolenaar
692071d4279SBram Moolenaar" GPG
693071d4279SBram Moolenaarau BufNewFile,BufRead */.gnupg/options		setf gpg
694071d4279SBram Moolenaarau BufNewFile,BufRead */.gnupg/gpg.conf		setf gpg
6959d98fe9cSBram Moolenaarau BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
69650ba526fSBram Moolenaarif !empty($GNUPGHOME)
69750ba526fSBram Moolenaar  au BufNewFile,BufRead $GNUPGHOME/options	setf gpg
69850ba526fSBram Moolenaar  au BufNewFile,BufRead $GNUPGHOME/gpg.conf	setf gpg
69950ba526fSBram Moolenaarendif
7008e5af3e5SBram Moolenaar
7018e5af3e5SBram Moolenaar" gnash(1) configuration files
7028e5af3e5SBram Moolenaarau BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
703071d4279SBram Moolenaar
7041514667aSBram Moolenaar" Gitolite
7051514667aSBram Moolenaarau BufNewFile,BufRead gitolite.conf		setf gitolite
7061514667aSBram Moolenaarau BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc	setf perl
7071514667aSBram Moolenaar
708071d4279SBram Moolenaar" Gnuplot scripts
709071d4279SBram Moolenaarau BufNewFile,BufRead *.gpi			setf gnuplot
710071d4279SBram Moolenaar
711fb539273SBram Moolenaar" Go (Google)
712fb539273SBram Moolenaarau BufNewFile,BufRead *.go			setf go
71328b6a3beSAman Vermaau BufNewFile,BufRead Gopkg.lock		setf toml
714fb539273SBram Moolenaar
715071d4279SBram Moolenaar" GrADS scripts
716071d4279SBram Moolenaarau BufNewFile,BufRead *.gs			setf grads
717071d4279SBram Moolenaar
7184770d09aSBram Moolenaar" Gretl
7194770d09aSBram Moolenaarau BufNewFile,BufRead *.gretl			setf gretl
7204770d09aSBram Moolenaar
721071d4279SBram Moolenaar" Groovy
722ca63501fSBram Moolenaarau BufNewFile,BufRead *.gradle,*.groovy		setf groovy
723071d4279SBram Moolenaar
724071d4279SBram Moolenaar" GNU Server Pages
725071d4279SBram Moolenaarau BufNewFile,BufRead *.gsp			setf gsp
726071d4279SBram Moolenaar
7270dc065eeSBram Moolenaar" Group file
728adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/group,*/etc/group-,*/etc/group.edit,*/etc/gshadow,*/etc/gshadow-,*/etc/gshadow.edit,*/var/backups/group.bak,*/var/backups/gshadow.bak  setf group
7290dc065eeSBram Moolenaar
730071d4279SBram Moolenaar" GTK RC
731071d4279SBram Moolenaarau BufNewFile,BufRead .gtkrc,gtkrc		setf gtkrc
732071d4279SBram Moolenaar
733c236c16dSBram Moolenaar" Haml
734c236c16dSBram Moolenaarau BufNewFile,BufRead *.haml			setf haml
735c236c16dSBram Moolenaar
736c81e5e79SBram Moolenaar" Hamster Classic | Playground files
737dcbab75dSBram Moolenaarau BufNewFile,BufRead *.hsm			setf hamster
738c81e5e79SBram Moolenaar
739071d4279SBram Moolenaar" Haskell
740f5409dbfSMarcin Szamotulskiau BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell
741071d4279SBram Moolenaarau BufNewFile,BufRead *.lhs			setf lhaskell
742071d4279SBram Moolenaarau BufNewFile,BufRead *.chs			setf chaskell
743dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.project		setf cabalproject
744dcbab75dSBram Moolenaarau BufNewFile,BufRead $HOME/.cabal/config	setf cabalconfig
745dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.config		setf cabalconfig
746071d4279SBram Moolenaar
747aba8857aSBram Moolenaar" Haste
748aba8857aSBram Moolenaarau BufNewFile,BufRead *.ht			setf haste
749c236c16dSBram Moolenaarau BufNewFile,BufRead *.htpp			setf hastepreproc
750aba8857aSBram Moolenaar
751071d4279SBram Moolenaar" Hercules
752b4ada79aSBram Moolenaarau BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum	setf hercules
753071d4279SBram Moolenaar
754071d4279SBram Moolenaar" HEX (Intel)
755071d4279SBram Moolenaarau BufNewFile,BufRead *.hex,*.h32		setf hex
756071d4279SBram Moolenaar
75756c860c3SBram Moolenaar" Hollywood
75856c860c3SBram Moolenaarau BufRead,BufNewFile *.hws			setf hollywood
75956c860c3SBram Moolenaar
760071d4279SBram Moolenaar" Tilde (must be before HTML)
761071d4279SBram Moolenaarau BufNewFile,BufRead *.t.html			setf tilde
762071d4279SBram Moolenaar
7636e7c7f3aSBram Moolenaar" HTML (.shtml and .stm for server side)
764d09a206eSBram Moolenaarau BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm  call dist#ft#FThtml()
765071d4279SBram Moolenaar
7666e7c7f3aSBram Moolenaar" HTML with Ruby - eRuby
76734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.erb,*.rhtml		setf eruby
768071d4279SBram Moolenaar
769071d4279SBram Moolenaar" HTML with M4
770071d4279SBram Moolenaarau BufNewFile,BufRead *.html.m4			setf htmlm4
771071d4279SBram Moolenaar
772d1362211SBram Moolenaar" Some template.  Used to be HTML Cheetah.
773d1362211SBram Moolenaarau BufNewFile,BufRead *.tmpl			setf template
774071d4279SBram Moolenaar
775aba8857aSBram Moolenaar" Host config
776adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/host.conf		setf hostconf
777aba8857aSBram Moolenaar
7780ab2c5adSBram Moolenaar" Hosts access
779adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny  setf hostsaccess
7800ab2c5adSBram Moolenaar
781071d4279SBram Moolenaar" Hyper Builder
782071d4279SBram Moolenaarau BufNewFile,BufRead *.hb			setf hb
783071d4279SBram Moolenaar
784ec7944aaSBram Moolenaar" Httest
785ec7944aaSBram Moolenaarau BufNewFile,BufRead *.htt,*.htb		setf httest
786ec7944aaSBram Moolenaar
787071d4279SBram Moolenaar" Icon
788071d4279SBram Moolenaarau BufNewFile,BufRead *.icn			setf icon
789071d4279SBram Moolenaar
790071d4279SBram Moolenaar" IDL (Interface Description Language)
791d09a206eSBram Moolenaarau BufNewFile,BufRead *.idl			call dist#ft#FTidl()
792071d4279SBram Moolenaar
793071d4279SBram Moolenaar" Microsoft IDL (Interface Description Language)  Also *.idl
794071d4279SBram Moolenaar" MOF = WMI (Windows Management Instrumentation) Managed Object Format
795071d4279SBram Moolenaarau BufNewFile,BufRead *.odl,*.mof		setf msidl
796071d4279SBram Moolenaar
797071d4279SBram Moolenaar" Icewm menu
798071d4279SBram Moolenaarau BufNewFile,BufRead */.icewm/menu		setf icemenu
799071d4279SBram Moolenaar
80034e0bfaaSBram Moolenaar" Indent profile (must come before IDL *.pro!)
80134e0bfaaSBram Moolenaarau BufNewFile,BufRead .indent.pro		setf indent
802d09a206eSBram Moolenaarau BufNewFile,BufRead indent.pro		call dist#ft#ProtoCheck('indent')
80334e0bfaaSBram Moolenaar
804071d4279SBram Moolenaar" IDL (Interactive Data Language)
805d09a206eSBram Moolenaarau BufNewFile,BufRead *.pro			call dist#ft#ProtoCheck('idlang')
806071d4279SBram Moolenaar
8070dc065eeSBram Moolenaar" Indent RC
8080ab2c5adSBram Moolenaarau BufNewFile,BufRead indentrc			setf indent
8090dc065eeSBram Moolenaar
810071d4279SBram Moolenaar" Inform
811071d4279SBram Moolenaarau BufNewFile,BufRead *.inf,*.INF		setf inform
812071d4279SBram Moolenaar
813c81e5e79SBram Moolenaar" Initng
8149d98fe9cSBram Moolenaarau BufNewFile,BufRead */etc/initng/*/*.i,*.ii	setf initng
815c81e5e79SBram Moolenaar
81656b45b9bSBram Moolenaar" Innovation Data Processing
8179d98fe9cSBram Moolenaarau BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c	setf upstreamdat
818b4d6c3eaSBram Moolenaarau BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c	setf upstreamlog
8199d98fe9cSBram Moolenaarau BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog
8209d98fe9cSBram Moolenaarau BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c	setf usserverlog
8219d98fe9cSBram Moolenaarau BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c	setf usw2kagtlog
82256b45b9bSBram Moolenaar
8232ce06f6eSBram Moolenaar" Ipfilter
824c81e5e79SBram Moolenaarau BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules	setf ipfilter
8252ce06f6eSBram Moolenaar
826071d4279SBram Moolenaar" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.)
827071d4279SBram Moolenaarau BufNewFile,BufRead *.4gl,*.4gh,*.m4gl	setf fgl
828071d4279SBram Moolenaar
829071d4279SBram Moolenaar" .INI file for MSDOS
830071d4279SBram Moolenaarau BufNewFile,BufRead *.ini			setf dosini
831071d4279SBram Moolenaar
832071d4279SBram Moolenaar" SysV Inittab
833071d4279SBram Moolenaarau BufNewFile,BufRead inittab			setf inittab
834071d4279SBram Moolenaar
835071d4279SBram Moolenaar" Inno Setup
836071d4279SBram Moolenaarau BufNewFile,BufRead *.iss			setf iss
837071d4279SBram Moolenaar
838baca7f70SBram Moolenaar" J
839baca7f70SBram Moolenaarau BufNewFile,BufRead *.ijs			setf j
840baca7f70SBram Moolenaar
841071d4279SBram Moolenaar" JAL
842071d4279SBram Moolenaarau BufNewFile,BufRead *.jal,*.JAL		setf jal
843071d4279SBram Moolenaar
844071d4279SBram Moolenaar" Jam
845071d4279SBram Moolenaarau BufNewFile,BufRead *.jpl,*.jpr		setf jam
846071d4279SBram Moolenaar
847071d4279SBram Moolenaar" Java
848071d4279SBram Moolenaarau BufNewFile,BufRead *.java,*.jav		setf java
849071d4279SBram Moolenaar
850071d4279SBram Moolenaar" JavaCC
851071d4279SBram Moolenaarau BufNewFile,BufRead *.jj,*.jjt		setf javacc
852071d4279SBram Moolenaar
853c1faf3dcSBram Moolenaar" JavaScript, ECMAScript, ES module script, CommonJS script
854c1faf3dcSBram Moolenaarau BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs,*.cjs   setf javascript
85592852ceeSBram Moolenaar
85692852ceeSBram Moolenaar" JavaScript with React
85792852ceeSBram Moolenaarau BufNewFile,BufRead *.jsx			setf javascriptreact
858071d4279SBram Moolenaar
859071d4279SBram Moolenaar" Java Server Pages
860071d4279SBram Moolenaarau BufNewFile,BufRead *.jsp			setf jsp
861071d4279SBram Moolenaar
862071d4279SBram Moolenaar" Java Properties resource file (note: doesn't catch font.properties.pl)
8634317d9b4SBram Moolenaarau BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_??	setf jproperties
864071d4279SBram Moolenaar
865071d4279SBram Moolenaar" Jess
866071d4279SBram Moolenaarau BufNewFile,BufRead *.clp			setf jess
867071d4279SBram Moolenaar
868071d4279SBram Moolenaar" Jgraph
869071d4279SBram Moolenaarau BufNewFile,BufRead *.jgr			setf jgraph
870071d4279SBram Moolenaar
871251e1912SBram Moolenaar" Jovial
872251e1912SBram Moolenaarau BufNewFile,BufRead *.jov,*.j73,*.jovial	setf jovial
873251e1912SBram Moolenaar
87407d87790SBram Moolenaar" JSON
875e18dbe86SBram Moolenaarau BufNewFile,BufRead *.json,*.jsonp,*.webmanifest	setf json
87607d87790SBram Moolenaar
8776582e230SKevin Locke" JSON Patch (RFC 6902)
8786582e230SKevin Lockeau BufNewFile,BufRead *.json-patch			setf json
8796582e230SKevin Locke
8802e66b0d1Skompowiec2" Jupyter Notebook is also json
8812e66b0d1Skompowiec2au BufNewFile,BufRead *.ipynb				setf json
8822e66b0d1Skompowiec2
88350c56893SBram Moolenaar" Other files that look like json
88450c56893SBram Moolenaarau BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc  setf json
88550c56893SBram Moolenaar
886acbb4b57SIzhak Jakov" JSONC
887acbb4b57SIzhak Jakovau BufNewFile,BufRead *.jsonc			setf jsonc
888acbb4b57SIzhak Jakov
8890eec8519SChristian Clason" Julia
8900eec8519SChristian Clasonau BufNewFile,BufRead *.jl			setf julia
8910eec8519SChristian Clason
892071d4279SBram Moolenaar" Kixtart
893071d4279SBram Moolenaarau BufNewFile,BufRead *.kix			setf kix
894071d4279SBram Moolenaar
895071d4279SBram Moolenaar" Kimwitu[++]
896071d4279SBram Moolenaarau BufNewFile,BufRead *.k			setf kwt
897071d4279SBram Moolenaar
898822ff866SBram Moolenaar" Kivy
899822ff866SBram Moolenaarau BufNewFile,BufRead *.kv			setf kivy
900822ff866SBram Moolenaar
901ab067a21SBram Moolenaar" Kotlin
902ab067a21SBram Moolenaarau BufNewFile,BufRead *.kt,*.ktm,*.kts		setf kotlin
903ab067a21SBram Moolenaar
904071d4279SBram Moolenaar" KDE script
905071d4279SBram Moolenaarau BufNewFile,BufRead *.ks			setf kscript
906071d4279SBram Moolenaar
9074c3f536fSBram Moolenaar" Kconfig
9084c3f536fSBram Moolenaarau BufNewFile,BufRead Kconfig,Kconfig.debug	setf kconfig
9094c3f536fSBram Moolenaar
910071d4279SBram Moolenaar" Lace (ISE)
911071d4279SBram Moolenaarau BufNewFile,BufRead *.ace,*.ACE		setf lace
912071d4279SBram Moolenaar
913071d4279SBram Moolenaar" Latte
914071d4279SBram Moolenaarau BufNewFile,BufRead *.latte,*.lte		setf latte
915071d4279SBram Moolenaar
91642eeac35SBram Moolenaar" Limits
917adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf	setf limits
91842eeac35SBram Moolenaar
919071d4279SBram Moolenaar" LambdaProlog (*.mod too, see Modsim)
920071d4279SBram Moolenaarau BufNewFile,BufRead *.sig			setf lprolog
921071d4279SBram Moolenaar
922071d4279SBram Moolenaar" LDAP LDIF
923071d4279SBram Moolenaarau BufNewFile,BufRead *.ldif			setf ldif
924071d4279SBram Moolenaar
92542eeac35SBram Moolenaar" Ld loader
92642eeac35SBram Moolenaarau BufNewFile,BufRead *.ld			setf ld
92742eeac35SBram Moolenaar
9288feef4ffSBram Moolenaar" Less
9298feef4ffSBram Moolenaarau BufNewFile,BufRead *.less			setf less
9308feef4ffSBram Moolenaar
931071d4279SBram Moolenaar" Lex
9320858917eSBram Moolenaarau BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++	setf lex
933071d4279SBram Moolenaar
934071d4279SBram Moolenaar" Libao
935adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/libao.conf,*/.libao	setf libao
936071d4279SBram Moolenaar
9370dc065eeSBram Moolenaar" Libsensors
938adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf	setf sensors
9390dc065eeSBram Moolenaar
940071d4279SBram Moolenaar" LFTP
941071d4279SBram Moolenaarau BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc	setf lftp
942071d4279SBram Moolenaar
943071d4279SBram Moolenaar" Lifelines (or Lex for C++!)
944071d4279SBram Moolenaarau BufNewFile,BufRead *.ll			setf lifelines
945071d4279SBram Moolenaar
946071d4279SBram Moolenaar" Lilo: Linux loader
9478e5af3e5SBram Moolenaarau BufNewFile,BufRead lilo.conf			setf lilo
948071d4279SBram Moolenaar
9492891459bSBram Moolenaar" Lisp (*.el = ELisp, *.cl = Common Lisp)
9502891459bSBram Moolenaar" *.jl was removed, it's also used for Julia, better skip than guess wrong.
951071d4279SBram Moolenaarif has("fname_case")
9522891459bSBram Moolenaar  au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp
953071d4279SBram Moolenaarelse
9542891459bSBram Moolenaar  au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,.emacs,.sawfishrc setf lisp
955071d4279SBram Moolenaarendif
956071d4279SBram Moolenaar
95742eeac35SBram Moolenaar" SBCL implementation of Common Lisp
95842eeac35SBram Moolenaarau BufNewFile,BufRead sbclrc,.sbclrc		setf lisp
95942eeac35SBram Moolenaar
9607a329911SBram Moolenaar" Liquid
9617a329911SBram Moolenaarau BufNewFile,BufRead *.liquid			setf liquid
9627a329911SBram Moolenaar
963071d4279SBram Moolenaar" Lite
964071d4279SBram Moolenaarau BufNewFile,BufRead *.lite,*.lt		setf lite
965071d4279SBram Moolenaar
96634e0bfaaSBram Moolenaar" LiteStep RC files
96734e0bfaaSBram Moolenaarau BufNewFile,BufRead */LiteStep/*/*.rc		setf litestep
96834e0bfaaSBram Moolenaar
96942eeac35SBram Moolenaar" Login access
970adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/login.access	setf loginaccess
97142eeac35SBram Moolenaar
97242eeac35SBram Moolenaar" Login defs
973adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/login.defs		setf logindefs
97442eeac35SBram Moolenaar
975071d4279SBram Moolenaar" Logtalk
976071d4279SBram Moolenaarau BufNewFile,BufRead *.lgt			setf logtalk
977071d4279SBram Moolenaar
978071d4279SBram Moolenaar" LOTOS
979071d4279SBram Moolenaarau BufNewFile,BufRead *.lot,*.lotos		setf lotos
980071d4279SBram Moolenaar
981071d4279SBram Moolenaar" Lout (also: *.lt)
982071d4279SBram Moolenaarau BufNewFile,BufRead *.lou,*.lout		setf lout
983071d4279SBram Moolenaar
984071d4279SBram Moolenaar" Lua
985071d4279SBram Moolenaarau BufNewFile,BufRead *.lua			setf lua
986071d4279SBram Moolenaar
9876e932461SBram Moolenaar" Luarocks
9886e932461SBram Moolenaarau BufNewFile,BufRead *.rockspec		setf lua
9896e932461SBram Moolenaar
990aba8857aSBram Moolenaar" Linden Scripting Language (Second Life)
991aba8857aSBram Moolenaarau BufNewFile,BufRead *.lsl			setf lsl
992aba8857aSBram Moolenaar
993071d4279SBram Moolenaar" Lynx style file (or LotusScript!)
994071d4279SBram Moolenaarau BufNewFile,BufRead *.lss			setf lss
995071d4279SBram Moolenaar
996071d4279SBram Moolenaar" M4
997071d4279SBram Moolenaarau BufNewFile,BufRead *.m4
998071d4279SBram Moolenaar	\ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif
999071d4279SBram Moolenaar
1000071d4279SBram Moolenaar" MaGic Point
1001071d4279SBram Moolenaarau BufNewFile,BufRead *.mgp			setf mgp
1002071d4279SBram Moolenaar
100301164a65SBram Moolenaar" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
100401164a65SBram Moolenaarau BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
1005071d4279SBram Moolenaar
1006899dddf8SBram Moolenaar" Mail aliases
1007adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases	setf mailaliases
1008899dddf8SBram Moolenaar
1009071d4279SBram Moolenaar" Mailcap configuration file
1010071d4279SBram Moolenaarau BufNewFile,BufRead .mailcap,mailcap		setf mailcap
1011071d4279SBram Moolenaar
1012071d4279SBram Moolenaar" Makefile
1013071d4279SBram Moolenaarau BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make
1014071d4279SBram Moolenaar
1015071d4279SBram Moolenaar" MakeIndex
1016071d4279SBram Moolenaarau BufNewFile,BufRead *.ist,*.mst		setf ist
1017071d4279SBram Moolenaar
101800154508SBram Moolenaar" Mallard
101900154508SBram Moolenaarau BufNewFile,BufRead *.page			setf mallard
102000154508SBram Moolenaar
1021071d4279SBram Moolenaar" Manpage
1022071d4279SBram Moolenaarau BufNewFile,BufRead *.man			setf man
1023071d4279SBram Moolenaar
10240dc065eeSBram Moolenaar" Man config
1025adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/man.conf,man.config	setf manconf
10260dc065eeSBram Moolenaar
1027071d4279SBram Moolenaar" Maple V
1028071d4279SBram Moolenaarau BufNewFile,BufRead *.mv,*.mpl,*.mws		setf maple
1029071d4279SBram Moolenaar
1030c236c16dSBram Moolenaar" Map (UMN mapserver config file)
1031c236c16dSBram Moolenaarau BufNewFile,BufRead *.map			setf map
1032c236c16dSBram Moolenaar
10337a329911SBram Moolenaar" Markdown
10347d76c804SBram Moolenaarau BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md  setf markdown
10357a329911SBram Moolenaar
1036071d4279SBram Moolenaar" Mason
1037fb539273SBram Moolenaarau BufNewFile,BufRead *.mason,*.mhtml,*.comp	setf mason
1038071d4279SBram Moolenaar
1039deba5eb1SBram Moolenaar" Mathematica, Matlab, Murphi, Objective C or Octave
1040d09a206eSBram Moolenaarau BufNewFile,BufRead *.m			call dist#ft#FTm()
1041071d4279SBram Moolenaar
1042aba8857aSBram Moolenaar" Mathematica notebook
1043aba8857aSBram Moolenaarau BufNewFile,BufRead *.nb			setf mma
1044aba8857aSBram Moolenaar
1045071d4279SBram Moolenaar" Maya Extension Language
1046071d4279SBram Moolenaarau BufNewFile,BufRead *.mel			setf mel
1047071d4279SBram Moolenaar
10489b451250SBram Moolenaar" Mercurial (hg) commit file
10499b451250SBram Moolenaarau BufNewFile,BufRead hg-editor-*.txt		setf hgcommit
10509b451250SBram Moolenaar
10515c73622aSBram Moolenaar" Mercurial config (looks like generic config file)
10525c73622aSBram Moolenaarau BufNewFile,BufRead *.hgrc,*hgrc		setf cfg
10535c73622aSBram Moolenaar
1054c3bf7b56SBram Moolenaar" Meson Build system config
1055c3bf7b56SBram Moolenaarau BufNewFile,BufRead meson.build,meson_options.txt setf meson
1056e3e598e8SLiam Beguinau BufNewFile,BufRead *.wrap			setf dosini
1057c3bf7b56SBram Moolenaar
10580065402fSBram Moolenaar" Messages (logs mostly)
10598e5af3e5SBram Moolenaarau BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.[0-9]*,-[0-9]*} setf messages
1060c81e5e79SBram Moolenaar
1061071d4279SBram Moolenaar" Metafont
1062071d4279SBram Moolenaarau BufNewFile,BufRead *.mf			setf mf
1063071d4279SBram Moolenaar
1064071d4279SBram Moolenaar" MetaPost
1065071d4279SBram Moolenaarau BufNewFile,BufRead *.mp			setf mp
1066071d4279SBram Moolenaar
1067df1bdc92SBram Moolenaar" MGL
1068df1bdc92SBram Moolenaarau BufNewFile,BufRead *.mgl			setf mgl
1069df1bdc92SBram Moolenaar
10704b60a6cdSBram Moolenaar" MIX - Knuth assembly
10714b60a6cdSBram Moolenaarau BufNewFile,BufRead *.mix,*.mixal		setf mix
10724b60a6cdSBram Moolenaar
1073071d4279SBram Moolenaar" MMIX or VMS makefile
1074d09a206eSBram Moolenaarau BufNewFile,BufRead *.mms			call dist#ft#FTmms()
1075071d4279SBram Moolenaar
1076aba8857aSBram Moolenaar" Symbian meta-makefile definition (MMP)
1077aba8857aSBram Moolenaarau BufNewFile,BufRead *.mmp			setf mmp
1078aba8857aSBram Moolenaar
1079071d4279SBram Moolenaar" Modsim III (or LambdaProlog)
1080071d4279SBram Moolenaarau BufNewFile,BufRead *.mod
1081071d4279SBram Moolenaar	\ if getline(1) =~ '\<module\>' |
1082071d4279SBram Moolenaar	\   setf lprolog |
1083071d4279SBram Moolenaar	\ else |
1084071d4279SBram Moolenaar	\   setf modsim3 |
1085071d4279SBram Moolenaar	\ endif
1086071d4279SBram Moolenaar
10876bc00699SBram Moolenaar" Modula-2  (.md removed in favor of Markdown)
10887d76c804SBram Moolenaarau BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi	setf modula2
1089071d4279SBram Moolenaar
10906bc00699SBram Moolenaar" Modula-3 (.m3, .i3, .mg, .ig)
1091071d4279SBram Moolenaarau BufNewFile,BufRead *.[mi][3g]		setf modula3
1092071d4279SBram Moolenaar
1093071d4279SBram Moolenaar" Monk
1094071d4279SBram Moolenaarau BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc	setf monk
1095071d4279SBram Moolenaar
1096071d4279SBram Moolenaar" MOO
1097071d4279SBram Moolenaarau BufNewFile,BufRead *.moo			setf moo
1098071d4279SBram Moolenaar
1099071d4279SBram Moolenaar" Modconf
1100adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf
1101071d4279SBram Moolenaar
1102690c524cSSteven Penny" MPD is based on XML
1103690c524cSSteven Pennyau BufNewFile,BufRead *.mpd			setf xml
1104690c524cSSteven Penny
1105071d4279SBram Moolenaar" Mplayer config
1106071d4279SBram Moolenaarau BufNewFile,BufRead mplayer.conf,*/.mplayer/config	setf mplayerconf
1107071d4279SBram Moolenaar
11085837f1f4SBram Moolenaar" Motorola S record
11095837f1f4SBram Moolenaarau BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec	setf srec
1110071d4279SBram Moolenaar
1111437df8f4SBram Moolenaar" Mrxvtrc
1112437df8f4SBram Moolenaarau BufNewFile,BufRead mrxvtrc,.mrxvtrc		setf mrxvtrc
1113437df8f4SBram Moolenaar
1114071d4279SBram Moolenaar" Msql
1115071d4279SBram Moolenaarau BufNewFile,BufRead *.msql			setf msql
1116071d4279SBram Moolenaar
1117071d4279SBram Moolenaar" Mysql
1118071d4279SBram Moolenaarau BufNewFile,BufRead *.mysql			setf mysql
1119071d4279SBram Moolenaar
11208e5af3e5SBram Moolenaar" Mutt setup files (must be before catch *.rc)
11218e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/Muttrc.d/*		call s:StarSetf('muttrc')
11228e5af3e5SBram Moolenaar
112378aa5ffeSBram Moolenaar" Tcl Shell RC file
112478aa5ffeSBram Moolenaarau BufNewFile,BufRead tclsh.rc			setf tcl
112578aa5ffeSBram Moolenaar
1126071d4279SBram Moolenaar" M$ Resource files
112730b65817SBram Moolenaarau BufNewFile,BufRead *.rc,*.rch		setf rc
1128071d4279SBram Moolenaar
1129cfbc5ee4SBram Moolenaar" MuPAD source
1130cfbc5ee4SBram Moolenaarau BufRead,BufNewFile *.mu			setf mupad
1131cfbc5ee4SBram Moolenaar
1132071d4279SBram Moolenaar" Mush
1133071d4279SBram Moolenaarau BufNewFile,BufRead *.mush			setf mush
1134071d4279SBram Moolenaar
1135c81e5e79SBram Moolenaar" Mutt setup file (also for Muttng)
11368aff23a1SBram Moolenaarau BufNewFile,BufRead Mutt{ng,}rc		setf muttrc
1137071d4279SBram Moolenaar
1138d9bc8a80SBram Moolenaar" N1QL
1139d9bc8a80SBram Moolenaarau BufRead,BufNewfile *.n1ql,*.nql		setf n1ql
1140d9bc8a80SBram Moolenaar
11410dc065eeSBram Moolenaar" Nano
11425a5f4591SBram Moolenaarau BufNewFile,BufRead */etc/nanorc,*.nanorc	setf nanorc
11430dc065eeSBram Moolenaar
1144071d4279SBram Moolenaar" Nastran input/DMAP
1145071d4279SBram Moolenaar"au BufNewFile,BufRead *.dat			setf nastran
1146071d4279SBram Moolenaar
1147071d4279SBram Moolenaar" Natural
1148071d4279SBram Moolenaarau BufNewFile,BufRead *.NS[ACGLMNPS]		setf natural
1149071d4279SBram Moolenaar
115001164a65SBram Moolenaar" Noemutt setup file
115101164a65SBram Moolenaarau BufNewFile,BufRead Neomuttrc			setf neomuttrc
115201164a65SBram Moolenaar
11531cd871b5SBram Moolenaar" Netrc
11541cd871b5SBram Moolenaarau BufNewFile,BufRead .netrc			setf netrc
11551cd871b5SBram Moolenaar
11568b8c0ed6SChris Aumann" Nginx
11578b8c0ed6SChris Aumannau BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf			setf nginx
11588b8c0ed6SChris Aumann
11596ee8d89cSBram Moolenaar" Ninja file
11606ee8d89cSBram Moolenaarau BufNewFile,BufRead *.ninja			setf ninja
11616ee8d89cSBram Moolenaar
11621e91eafcSBram Moolenaar" NPM RC file
11631e91eafcSBram Moolenaarau BufNewFile,BufRead npmrc,.npmrc		setf dosini
11641e91eafcSBram Moolenaar
1165071d4279SBram Moolenaar" Novell netware batch files
1166071d4279SBram Moolenaarau BufNewFile,BufRead *.ncf			setf ncf
1167071d4279SBram Moolenaar
1168071d4279SBram Moolenaar" Nroff/Troff (*.ms and *.t are checked below)
1169071d4279SBram Moolenaarau BufNewFile,BufRead *.me
1170071d4279SBram Moolenaar	\ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" |
1171071d4279SBram Moolenaar	\   setf nroff |
1172071d4279SBram Moolenaar	\ endif
1173071d4279SBram Moolenaarau BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom	setf nroff
1174d09a206eSBram Moolenaarau BufNewFile,BufRead *.[1-9]			call dist#ft#FTnroff()
1175071d4279SBram Moolenaar
1176071d4279SBram Moolenaar" Nroff or Objective C++
1177d09a206eSBram Moolenaarau BufNewFile,BufRead *.mm			call dist#ft#FTmm()
1178071d4279SBram Moolenaar
1179071d4279SBram Moolenaar" Not Quite C
1180071d4279SBram Moolenaarau BufNewFile,BufRead *.nqc			setf nqc
1181071d4279SBram Moolenaar
1182036986f1SBram Moolenaar" NSE - Nmap Script Engine - uses Lua syntax
1183036986f1SBram Moolenaarau BufNewFile,BufRead *.nse			setf lua
1184036986f1SBram Moolenaar
1185071d4279SBram Moolenaar" NSIS
1186d38b055aSBram Moolenaarau BufNewFile,BufRead *.nsi,*.nsh		setf nsis
1187071d4279SBram Moolenaar
1188beef4eedSBram Moolenaar" OCaml
1189beef4eedSBram Moolenaarau BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
1190071d4279SBram Moolenaar
1191071d4279SBram Moolenaar" Occam
1192071d4279SBram Moolenaarau BufNewFile,BufRead *.occ			setf occam
1193071d4279SBram Moolenaar
1194deba5eb1SBram Moolenaar" Octave
1195deba5eb1SBram Moolenaarau BufNewFile,BufRead octave.conf,.octaverc,octaverc	setf octave
1196deba5eb1SBram Moolenaar
1197071d4279SBram Moolenaar" Omnimark
1198071d4279SBram Moolenaarau BufNewFile,BufRead *.xom,*.xin		setf omnimark
1199071d4279SBram Moolenaar
1200beef4eedSBram Moolenaar" OPAM
1201beef4eedSBram Moolenaarau BufNewFile,BufRead opam,*.opam,*.opam.template setf opam
1202beef4eedSBram Moolenaar
1203071d4279SBram Moolenaar" OpenROAD
1204071d4279SBram Moolenaarau BufNewFile,BufRead *.or			setf openroad
1205071d4279SBram Moolenaar
1206071d4279SBram Moolenaar" OPL
1207071d4279SBram Moolenaarau BufNewFile,BufRead *.[Oo][Pp][Ll]		setf opl
1208071d4279SBram Moolenaar
1209071d4279SBram Moolenaar" Oracle config file
1210071d4279SBram Moolenaarau BufNewFile,BufRead *.ora			setf ora
1211071d4279SBram Moolenaar
1212071d4279SBram Moolenaar" Packet filter conf
1213071d4279SBram Moolenaarau BufNewFile,BufRead pf.conf			setf pf
1214071d4279SBram Moolenaar
121573b4465bSBram Moolenaar" Pacman Config (close enough to dosini)
121673b4465bSBram Moolenaarau BufNewFile,BufRead */etc/pacman.conf		setf dosini
121773b4465bSBram Moolenaar
121873b4465bSBram Moolenaar" Pacman hooks
121973b4465bSBram Moolenaarau BufNewFile,BufRead *.hook
122073b4465bSBram Moolenaar	\ if getline(1) == '[Trigger]' |
122173b4465bSBram Moolenaar	\   setf dosini |
122273b4465bSBram Moolenaar	\ endif
122373b4465bSBram Moolenaar
122442eeac35SBram Moolenaar" Pam conf
1225adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/pam.conf			setf pamconf
122642eeac35SBram Moolenaar
122761154810SBram Moolenaar" Pam environment
1228aacc6afdSBram Moolenaarau BufNewFile,BufRead pam_env.conf,.pam_environment	setf pamenv
122961154810SBram Moolenaar
1230071d4279SBram Moolenaar" PApp
1231071d4279SBram Moolenaarau BufNewFile,BufRead *.papp,*.pxml,*.pxsl	setf papp
1232071d4279SBram Moolenaar
12330dc065eeSBram Moolenaar" Password file
1234adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd
12350dc065eeSBram Moolenaar
12368323cab3SBram Moolenaar" Pascal (also *.p, *.pp, *.inc)
1237a0122dcdSBram Moolenaarau BufNewFile,BufRead *.pas			setf pascal
1238a0122dcdSBram Moolenaar
12398323cab3SBram Moolenaar" Pascal or Puppet manifest
1240a0122dcdSBram Moolenaarau BufNewFile,BufRead *.pp			call dist#ft#FTpp()
1241071d4279SBram Moolenaar
124244aaf541SBram Moolenaar" Delphi or Lazarus program file
124344aaf541SBram Moolenaarau BufNewFile,BufRead *.dpr,*.lpr		setf pascal
1244071d4279SBram Moolenaar
1245f6d9935aSBram Moolenaar" Free Pascal makefile definition file
1246f6d9935aSBram Moolenaarau BufNewFile,BufRead *.fpc			setf fpcmake
1247f6d9935aSBram Moolenaar
1248aba8857aSBram Moolenaar" PDF
1249aba8857aSBram Moolenaarau BufNewFile,BufRead *.pdf			setf pdf
1250aba8857aSBram Moolenaar
125101164a65SBram Moolenaar" PCMK - HAE - crm configure edit
125201164a65SBram Moolenaarau BufNewFile,BufRead *.pcmk			setf pcmk
125301164a65SBram Moolenaar
1254071d4279SBram Moolenaar" Perl
1255071d4279SBram Moolenaarif has("fname_case")
1256d09a206eSBram Moolenaar  au BufNewFile,BufRead *.pl,*.PL		call dist#ft#FTpl()
1257071d4279SBram Moolenaarelse
1258d09a206eSBram Moolenaar  au BufNewFile,BufRead *.pl			call dist#ft#FTpl()
1259071d4279SBram Moolenaarendif
1260b4d6c3eaSBram Moolenaarau BufNewFile,BufRead *.plx,*.al,*.psgi		setf perl
1261071d4279SBram Moolenaar
1262071d4279SBram Moolenaar" Perl, XPM or XPM2
1263071d4279SBram Moolenaarau BufNewFile,BufRead *.pm
1264071d4279SBram Moolenaar	\ if getline(1) =~ "XPM2" |
1265071d4279SBram Moolenaar	\   setf xpm2 |
1266071d4279SBram Moolenaar	\ elseif getline(1) =~ "XPM" |
1267071d4279SBram Moolenaar	\   setf xpm |
1268071d4279SBram Moolenaar	\ else |
1269071d4279SBram Moolenaar	\   setf perl |
1270071d4279SBram Moolenaar	\ endif
1271071d4279SBram Moolenaar
1272071d4279SBram Moolenaar" Perl POD
1273071d4279SBram Moolenaarau BufNewFile,BufRead *.pod			setf pod
1274071d4279SBram Moolenaar
127584c63267SBram Moolenaar" Php, php3, php4, etc.
1276aba8857aSBram Moolenaar" Also Phtml (was used for PHP 2 in the past)
1277aba8857aSBram Moolenaar" Also .ctp for Cake template file
1278aba8857aSBram Moolenaarau BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp	setf php
1279071d4279SBram Moolenaar
12801e91eafcSBram Moolenaar" PHP config
1281d58a3bf7SBram Moolenaarau BufNewFile,BufRead php.ini-*			setf dosini
12821e91eafcSBram Moolenaar
128340962ec9SBram Moolenaar" Pike and Cmod
128440962ec9SBram Moolenaarau BufNewFile,BufRead *.pike,*.pmod		setf pike
128540962ec9SBram Moolenaarau BufNewFile,BufRead *.cmod			setf cmod
1286071d4279SBram Moolenaar
1287071d4279SBram Moolenaar" Pinfo config
1288071d4279SBram Moolenaarau BufNewFile,BufRead */etc/pinforc,*/.pinforc	setf pinfo
1289071d4279SBram Moolenaar
1290071d4279SBram Moolenaar" Palm Resource compiler
1291071d4279SBram Moolenaarau BufNewFile,BufRead *.rcp			setf pilrc
1292071d4279SBram Moolenaar
1293071d4279SBram Moolenaar" Pine config
1294071d4279SBram Moolenaarau BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex		setf pine
1295071d4279SBram Moolenaar
12963a4c53baSBram Moolenaar" Pipenv Pipfiles
129728b6a3beSAman Vermaau BufNewFile,BufRead Pipfile			setf toml
12983a4c53baSBram Moolenaarau BufNewFile,BufRead Pipfile.lock		setf json
12993a4c53baSBram Moolenaar
1300e2db695dSBram Moolenaar" PL/1, PL/I
1301e2db695dSBram Moolenaarau BufNewFile,BufRead *.pli,*.pl1		setf pli
1302e2db695dSBram Moolenaar
1303071d4279SBram Moolenaar" PL/M (also: *.inp)
1304071d4279SBram Moolenaarau BufNewFile,BufRead *.plm,*.p36,*.pac		setf plm
1305071d4279SBram Moolenaar
1306071d4279SBram Moolenaar" PL/SQL
1307071d4279SBram Moolenaarau BufNewFile,BufRead *.pls,*.plsql		setf plsql
1308071d4279SBram Moolenaar
1309071d4279SBram Moolenaar" PLP
1310071d4279SBram Moolenaarau BufNewFile,BufRead *.plp			setf plp
1311071d4279SBram Moolenaar
1312071d4279SBram Moolenaar" PO and PO template (GNU gettext)
1313071d4279SBram Moolenaarau BufNewFile,BufRead *.po,*.pot		setf po
1314071d4279SBram Moolenaar
1315071d4279SBram Moolenaar" Postfix main config
1316071d4279SBram Moolenaarau BufNewFile,BufRead main.cf			setf pfmain
1317071d4279SBram Moolenaar
1318071d4279SBram Moolenaar" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator)
1319071d4279SBram Moolenaarau BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai	  setf postscr
1320071d4279SBram Moolenaar
1321071d4279SBram Moolenaar" PostScript Printer Description
1322071d4279SBram Moolenaarau BufNewFile,BufRead *.ppd			setf ppd
1323071d4279SBram Moolenaar
1324071d4279SBram Moolenaar" Povray
1325071d4279SBram Moolenaarau BufNewFile,BufRead *.pov			setf pov
1326071d4279SBram Moolenaar
1327071d4279SBram Moolenaar" Povray configuration
1328071d4279SBram Moolenaarau BufNewFile,BufRead .povrayrc			setf povini
1329071d4279SBram Moolenaar
13308323cab3SBram Moolenaar" Povray, Pascal, PHP or assembly
1331d09a206eSBram Moolenaarau BufNewFile,BufRead *.inc			call dist#ft#FTinc()
1332071d4279SBram Moolenaar
1333ef38bcf0SBram Moolenaar" PowerShell
1334ef38bcf0SBram Moolenaarau BufNewFile,BufRead	*.ps1,*.psd1,*.psm1,*.pssc	setf ps1
1335ef38bcf0SBram Moolenaarau BufNewFile,BufRead	*.ps1xml			setf ps1xml
1336ef38bcf0SBram Moolenaarau BufNewFile,BufRead	*.cdxml,*.psc1			setf xml
1337ef38bcf0SBram Moolenaar
1338071d4279SBram Moolenaar" Printcap and Termcap
1339071d4279SBram Moolenaarau BufNewFile,BufRead *printcap
1340071d4279SBram Moolenaar	\ let b:ptcap_type = "print" | setf ptcap
1341071d4279SBram Moolenaarau BufNewFile,BufRead *termcap
1342071d4279SBram Moolenaar	\ let b:ptcap_type = "term" | setf ptcap
1343071d4279SBram Moolenaar
13448323cab3SBram Moolenaar" PCCTS / ANTLR
13458323cab3SBram Moolenaar"au BufNewFile,BufRead *.g			setf antlr
1346071d4279SBram Moolenaarau BufNewFile,BufRead *.g			setf pccts
1347071d4279SBram Moolenaar
1348071d4279SBram Moolenaar" PPWizard
1349071d4279SBram Moolenaarau BufNewFile,BufRead *.it,*.ih			setf ppwiz
1350071d4279SBram Moolenaar
13518323cab3SBram Moolenaar" Puppet
13528323cab3SBram Moolenaarau BufNewFile,BufRead Puppetfile		setf ruby
13538323cab3SBram Moolenaar
13548323cab3SBram Moolenaar" Embedded Puppet
13558323cab3SBram Moolenaarau BufNewFile,BufRead *.epp			setf epuppet
13568323cab3SBram Moolenaar
135700a927d6SBram Moolenaar" Obj 3D file format
135800a927d6SBram Moolenaar" TODO: is there a way to avoid MS-Windows Object files?
135900a927d6SBram Moolenaarau BufNewFile,BufRead *.obj			setf obj
136000a927d6SBram Moolenaar
1361071d4279SBram Moolenaar" Oracle Pro*C/C++
136210425273SBram Moolenaarau BufNewFile,BufRead *.pc			setf proc
1363071d4279SBram Moolenaar
1364c81e5e79SBram Moolenaar" Privoxy actions file
1365c81e5e79SBram Moolenaarau BufNewFile,BufRead *.action			setf privoxy
1366c81e5e79SBram Moolenaar
1367071d4279SBram Moolenaar" Procmail
1368071d4279SBram Moolenaarau BufNewFile,BufRead .procmail,.procmailrc	setf procmail
1369071d4279SBram Moolenaar
1370071d4279SBram Moolenaar" Progress or CWEB
1371d09a206eSBram Moolenaarau BufNewFile,BufRead *.w			call dist#ft#FTprogress_cweb()
1372071d4279SBram Moolenaar
1373071d4279SBram Moolenaar" Progress or assembly
1374d09a206eSBram Moolenaarau BufNewFile,BufRead *.i			call dist#ft#FTprogress_asm()
1375071d4279SBram Moolenaar
1376071d4279SBram Moolenaar" Progress or Pascal
1377d09a206eSBram Moolenaarau BufNewFile,BufRead *.p			call dist#ft#FTprogress_pascal()
1378071d4279SBram Moolenaar
1379071d4279SBram Moolenaar" Software Distributor Product Specification File (POSIX 1387.2-1995)
1380071d4279SBram Moolenaarau BufNewFile,BufRead *.psf			setf psf
1381071d4279SBram Moolenaarau BufNewFile,BufRead INDEX,INFO
1382071d4279SBram Moolenaar	\ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' |
1383071d4279SBram Moolenaar	\   setf psf |
1384071d4279SBram Moolenaar	\ endif
1385071d4279SBram Moolenaar
1386071d4279SBram Moolenaar" Prolog
1387071d4279SBram Moolenaarau BufNewFile,BufRead *.pdb			setf prolog
1388071d4279SBram Moolenaar
1389aba8857aSBram Moolenaar" Promela
1390aba8857aSBram Moolenaarau BufNewFile,BufRead *.pml			setf promela
1391aba8857aSBram Moolenaar
1392112a0064SBram Moolenaar" Property Specification Language (PSL)
1393112a0064SBram Moolenaarau BufNewFile,BufRead *.psl			setf psl
1394112a0064SBram Moolenaar
1395ec7944aaSBram Moolenaar" Google protocol buffers
1396ec7944aaSBram Moolenaarau BufNewFile,BufRead *.proto			setf proto
139788774a30SBram Moolenaarau BufNewFile,BufRead *.pbtxt			setf pbtxt
1398ec7944aaSBram Moolenaar
1399c80f6475SBram Moolenaar" Poke
1400c80f6475SBram Moolenaarau BufNewFile,BufRead *.pk			setf poke
1401c80f6475SBram Moolenaar
14020dc065eeSBram Moolenaar" Protocols
1403adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/protocols		setf protocols
14040dc065eeSBram Moolenaar
1405eb05d05fSBram Moolenaar" Pyret
1406eb05d05fSBram Moolenaarau BufNewFile,BufRead *.arr			setf pyret
1407eb05d05fSBram Moolenaar
1408071d4279SBram Moolenaar" Pyrex
1409071d4279SBram Moolenaarau BufNewFile,BufRead *.pyx,*.pxd		setf pyrex
1410071d4279SBram Moolenaar
141138654503SBram Moolenaar" Python, Python Shell Startup and Python Stub Files
14120ab2c5adSBram Moolenaar" Quixote (Python-based web framework)
1413ad723503SBram Moolenaarau BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc  setf python
1414ad723503SBram Moolenaarau BufNewFile,BufRead *.ptl,*.pyi,SConstruct		   setf python
14150ab2c5adSBram Moolenaar
1416071d4279SBram Moolenaar" Radiance
1417071d4279SBram Moolenaarau BufNewFile,BufRead *.rad,*.mat		setf radiance
1418071d4279SBram Moolenaar
14196c391a74SBram Moolenaar" Raku (formerly Perl6)
14203f88e71fSBram Moolenaarau BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest  setf raku
14213f88e71fSBram Moolenaar
1422071d4279SBram Moolenaar" Ratpoison config/command files
1423071d4279SBram Moolenaarau BufNewFile,BufRead .ratpoisonrc,ratpoisonrc	setf ratpoison
1424071d4279SBram Moolenaar
1425071d4279SBram Moolenaar" RCS file
1426071d4279SBram Moolenaarau BufNewFile,BufRead *\,v			setf rcs
1427071d4279SBram Moolenaar
1428071d4279SBram Moolenaar" Readline
142913fcaaf1SBram Moolenaarau BufNewFile,BufRead .inputrc,inputrc		setf readline
1430071d4279SBram Moolenaar
1431071d4279SBram Moolenaar" Registry for MS-Windows
1432071d4279SBram Moolenaarau BufNewFile,BufRead *.reg
1433071d4279SBram Moolenaar	\ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif
1434071d4279SBram Moolenaar
1435071d4279SBram Moolenaar" Renderman Interface Bytestream
1436071d4279SBram Moolenaarau BufNewFile,BufRead *.rib			setf rib
1437071d4279SBram Moolenaar
1438a4ce82feSBram Moolenaar" Rego Policy Language
1439a4ce82feSBram Moolenaarau BufNewFile,BufRead *.rego			setf rego
1440a4ce82feSBram Moolenaar
1441071d4279SBram Moolenaar" Rexx
14423a0d8090SBram Moolenaarau BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit	setf rexx
1443071d4279SBram Moolenaar
1444fd2ac767SBram Moolenaar" R Help file
1445c1e37901SBram Moolenaarif has("fname_case")
1446362e1a30SBram Moolenaar  au BufNewFile,BufRead *.rd,*.Rd		setf rhelp
1447c1e37901SBram Moolenaarelse
1448c1e37901SBram Moolenaar  au BufNewFile,BufRead *.rd			setf rhelp
1449c1e37901SBram Moolenaarendif
1450c1e37901SBram Moolenaar
1451c1e37901SBram Moolenaar" R noweb file
1452c1e37901SBram Moolenaarif has("fname_case")
1453c1e37901SBram Moolenaar  au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw		setf rnoweb
1454c1e37901SBram Moolenaarelse
1455c1e37901SBram Moolenaar  au BufNewFile,BufRead *.rnw,*.snw			setf rnoweb
1456c1e37901SBram Moolenaarendif
1457fd2ac767SBram Moolenaar
1458db6ea063SBram Moolenaar" R Markdown file
1459db6ea063SBram Moolenaarif has("fname_case")
1460db6ea063SBram Moolenaar  au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd		setf rmd
1461db6ea063SBram Moolenaarelse
1462db6ea063SBram Moolenaar  au BufNewFile,BufRead *.rmd,*.smd			setf rmd
1463db6ea063SBram Moolenaarendif
1464db6ea063SBram Moolenaar
1465af125866SBram Moolenaar" RSS looks like XML
1466af125866SBram Moolenaarau BufNewFile,BufRead *.rss				setf xml
1467af125866SBram Moolenaar
1468db6ea063SBram Moolenaar" R reStructuredText file
1469db6ea063SBram Moolenaarif has("fname_case")
1470db6ea063SBram Moolenaar  au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst	setf rrst
1471db6ea063SBram Moolenaarelse
1472db6ea063SBram Moolenaar  au BufNewFile,BufRead *.rrst,*.srst			setf rrst
1473db6ea063SBram Moolenaarendif
1474db6ea063SBram Moolenaar
1475071d4279SBram Moolenaar" Rexx, Rebol or R
1476d09a206eSBram Moolenaarau BufNewFile,BufRead *.r,*.R				call dist#ft#FTr()
1477071d4279SBram Moolenaar
1478071d4279SBram Moolenaar" Remind
14798e5af3e5SBram Moolenaarau BufNewFile,BufRead .reminders,*.remind,*.rem		setf remind
1480071d4279SBram Moolenaar
1481071d4279SBram Moolenaar" Resolv.conf
1482071d4279SBram Moolenaarau BufNewFile,BufRead resolv.conf		setf resolv
1483071d4279SBram Moolenaar
1484071d4279SBram Moolenaar" Relax NG Compact
1485071d4279SBram Moolenaarau BufNewFile,BufRead *.rnc			setf rnc
1486071d4279SBram Moolenaar
1487bf88493cSBram Moolenaar" Relax NG XML
1488bf88493cSBram Moolenaarau BufNewFile,BufRead *.rng			setf rng
1489bf88493cSBram Moolenaar
1490071d4279SBram Moolenaar" RPL/2
1491071d4279SBram Moolenaarau BufNewFile,BufRead *.rpl			setf rpl
1492071d4279SBram Moolenaar
1493071d4279SBram Moolenaar" Robots.txt
1494071d4279SBram Moolenaarau BufNewFile,BufRead robots.txt		setf robots
1495071d4279SBram Moolenaar
1496071d4279SBram Moolenaar" Rpcgen
1497071d4279SBram Moolenaarau BufNewFile,BufRead *.x			setf rpcgen
1498071d4279SBram Moolenaar
14990818ab82Szainin" MikroTik RouterOS script
15000818ab82Szaininau BufRead,BufNewFile *.rsc			setf routeros
15010818ab82Szainin
1502071d4279SBram Moolenaar" reStructuredText Documentation Format
1503071d4279SBram Moolenaarau BufNewFile,BufRead *.rst			setf rst
1504071d4279SBram Moolenaar
1505071d4279SBram Moolenaar" RTF
1506071d4279SBram Moolenaarau BufNewFile,BufRead *.rtf			setf rtf
1507071d4279SBram Moolenaar
15080ab2c5adSBram Moolenaar" Interactive Ruby shell
15090ab2c5adSBram Moolenaarau BufNewFile,BufRead .irbrc,irbrc		setf ruby
15100ab2c5adSBram Moolenaar
1511071d4279SBram Moolenaar" Ruby
15122a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.rb,*.rbw		setf ruby
15132a8a3ecbSBram Moolenaar
15142a8a3ecbSBram Moolenaar" RubyGems
15152a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.gemspec			setf ruby
15162a8a3ecbSBram Moolenaar
15178323cab3SBram Moolenaar" RBS (Ruby Signature)
15188323cab3SBram Moolenaarau BufNewFile,BufRead *.rbs			setf rbs
1519b4ada79aSBram Moolenaar
15202a8a3ecbSBram Moolenaar" Rackup
15212a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.ru			setf ruby
15222a8a3ecbSBram Moolenaar
15232a8a3ecbSBram Moolenaar" Bundler
15242a8a3ecbSBram Moolenaarau BufNewFile,BufRead Gemfile			setf ruby
1525071d4279SBram Moolenaar
152634e0bfaaSBram Moolenaar" Ruby on Rails
152734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.builder,*.rxml,*.rjs	setf ruby
152834e0bfaaSBram Moolenaar
152934e0bfaaSBram Moolenaar" Rantfile and Rakefile is like Ruby
153034e0bfaaSBram Moolenaarau BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake	setf ruby
1531a5792f58SBram Moolenaar
15328323cab3SBram Moolenaar" Rust
15338323cab3SBram Moolenaarau BufNewFile,BufRead *.rs			setf rust
153428b6a3beSAman Vermaau BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials	setf toml
15358323cab3SBram Moolenaar
15365c73622aSBram Moolenaar" S-lang (or shader language, or SmallLisp)
1537071d4279SBram Moolenaarau BufNewFile,BufRead *.sl			setf slang
1538071d4279SBram Moolenaar
1539071d4279SBram Moolenaar" Samba config
1540071d4279SBram Moolenaarau BufNewFile,BufRead smb.conf			setf samba
1541071d4279SBram Moolenaar
1542071d4279SBram Moolenaar" SAS script
1543071d4279SBram Moolenaarau BufNewFile,BufRead *.sas			setf sas
1544071d4279SBram Moolenaar
1545c236c16dSBram Moolenaar" Sass
1546c236c16dSBram Moolenaarau BufNewFile,BufRead *.sass			setf sass
1547c236c16dSBram Moolenaar
1548071d4279SBram Moolenaar" Sather
1549071d4279SBram Moolenaarau BufNewFile,BufRead *.sa			setf sather
1550071d4279SBram Moolenaar
1551e4a3bcf2SBram Moolenaar" Scala
15526db7b637SBrennon Mau BufNewFile,BufRead *.scala,*.sc		setf scala
1553e4a3bcf2SBram Moolenaar
1554b4d6c3eaSBram Moolenaar" SBT - Scala Build Tool
1555b4d6c3eaSBram Moolenaarau BufNewFile,BufRead *.sbt			setf sbt
1556b4d6c3eaSBram Moolenaar
1557071d4279SBram Moolenaar" Scilab
1558899dddf8SBram Moolenaarau BufNewFile,BufRead *.sci,*.sce		setf scilab
1559071d4279SBram Moolenaar
1560dd097bdcSGregory Anders" scdoc
1561dd097bdcSGregory Andersau BufNewFile,BufRead *.scd			setf scdoc
1562dd097bdcSGregory Anders
15630ed0eea2SBram Moolenaar" SCSS
15640ed0eea2SBram Moolenaarau BufNewFile,BufRead *.scss			setf scss
15650ed0eea2SBram Moolenaar
1566c81e5e79SBram Moolenaar" SD: Streaming Descriptors
1567c81e5e79SBram Moolenaarau BufNewFile,BufRead *.sd			setf sd
1568c81e5e79SBram Moolenaar
1569071d4279SBram Moolenaar" SDL
1570071d4279SBram Moolenaarau BufNewFile,BufRead *.sdl,*.pr		setf sdl
1571071d4279SBram Moolenaar
1572071d4279SBram Moolenaar" sed
1573071d4279SBram Moolenaarau BufNewFile,BufRead *.sed			setf sed
1574071d4279SBram Moolenaar
1575c0fcb6e0SBram Moolenaar" svelte
1576c0fcb6e0SBram Moolenaarau BufNewFile,BufRead *.svelte			setf svelte
1577c0fcb6e0SBram Moolenaar
157838654503SBram Moolenaar" Sieve (RFC 3028, 5228)
157938654503SBram Moolenaarau BufNewFile,BufRead *.siv,*.sieve		setf sieve
1580293ee4d4SBram Moolenaar
1581071d4279SBram Moolenaar" Sendmail
1582071d4279SBram Moolenaarau BufNewFile,BufRead sendmail.cf		setf sm
1583071d4279SBram Moolenaar
1584aba8857aSBram Moolenaar" Sendmail .mc files are actually m4.  Could also be MS Message text file.
1585d09a206eSBram Moolenaarau BufNewFile,BufRead *.mc			call dist#ft#McSetf()
1586071d4279SBram Moolenaar
15870dc065eeSBram Moolenaar" Services
1588adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/services		setf services
15890dc065eeSBram Moolenaar
15900dc065eeSBram Moolenaar" Service Location config
1591adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.conf		setf slpconf
15920dc065eeSBram Moolenaar
15930dc065eeSBram Moolenaar" Service Location registration
1594adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.reg		setf slpreg
15950dc065eeSBram Moolenaar
15960dc065eeSBram Moolenaar" Service Location SPI
1597adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.spi		setf slpspi
15980dc065eeSBram Moolenaar
15990dc065eeSBram Moolenaar" Setserial config
1600adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/serial.conf		setf setserial
16010dc065eeSBram Moolenaar
1602071d4279SBram Moolenaar" SGML
1603071d4279SBram Moolenaarau BufNewFile,BufRead *.sgm,*.sgml
1604071d4279SBram Moolenaar	\ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' |
1605071d4279SBram Moolenaar	\   setf sgmllnx |
1606071d4279SBram Moolenaar	\ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' |
1607071d4279SBram Moolenaar	\   let b:docbk_type = "sgml" |
16082df58b4aSBram Moolenaar	\   let b:docbk_ver = 4 |
1609071d4279SBram Moolenaar	\   setf docbk |
1610071d4279SBram Moolenaar	\ else |
1611071d4279SBram Moolenaar	\   setf sgml |
1612071d4279SBram Moolenaar	\ endif
1613071d4279SBram Moolenaar
1614071d4279SBram Moolenaar" SGMLDECL
1615071d4279SBram Moolenaarau BufNewFile,BufRead *.decl,*.dcl,*.dec
1616071d4279SBram Moolenaar	\ if getline(1).getline(2).getline(3) =~? '^<!SGML' |
1617071d4279SBram Moolenaar	\    setf sgmldecl |
1618071d4279SBram Moolenaar	\ endif
1619071d4279SBram Moolenaar
1620071d4279SBram Moolenaar" SGML catalog file
16214317d9b4SBram Moolenaarau BufNewFile,BufRead catalog			setf catalog
1622071d4279SBram Moolenaar
1623071d4279SBram Moolenaar" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
1624cb80aa2dSBram Moolenaar" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually
1625cb80aa2dSBram Moolenaar" bash scripts.
1626147e7d0cSBram Moolenaar" NOTE: Patterns ending in a star are further down, these have lower priority.
1627409da842SBram Moolenaarau BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash")
1628147e7d0cSBram Moolenaarau BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
1629147e7d0cSBram Moolenaarau BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))
1630147e7d0cSBram Moolenaar
163106481427SBram Moolenaar" Shell script (Arch Linux) or PHP file (Drupal)
163206481427SBram Moolenaarau BufNewFile,BufRead *.install
163306481427SBram Moolenaar	\ if getline(1) =~ '<?php' |
163406481427SBram Moolenaar	\   setf php |
163506481427SBram Moolenaar	\ else |
1636d09a206eSBram Moolenaar	\   call dist#ft#SetFileTypeSH("bash") |
163706481427SBram Moolenaar	\ endif
163806481427SBram Moolenaar
16392bf60b30SBram Moolenaar" tcsh scripts (patterns ending in a star further below)
1640147e7d0cSBram Moolenaarau BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login	call dist#ft#SetFileTypeShell("tcsh")
1641071d4279SBram Moolenaar
1642071d4279SBram Moolenaar" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
16432bf60b30SBram Moolenaar" (patterns ending in a start further below)
1644147e7d0cSBram Moolenaarau BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias  call dist#ft#CSH()
1645071d4279SBram Moolenaar
16462bf60b30SBram Moolenaar" Z-Shell script (patterns ending in a star further below)
1647adc2182cSBram Moolenaarau BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks  setf zsh
16482bf60b30SBram Moolenaarau BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
1649e37d50a5SBram Moolenaarau BufNewFile,BufRead *.zsh			setf zsh
1650071d4279SBram Moolenaar
1651071d4279SBram Moolenaar" Scheme
16529cd91a1eSBram Moolenaarau BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl 	setf scheme
1653071d4279SBram Moolenaar
1654071d4279SBram Moolenaar" Screen RC
1655071d4279SBram Moolenaarau BufNewFile,BufRead .screenrc,screenrc	setf screen
1656071d4279SBram Moolenaar
1657beef4eedSBram Moolenaar" Sexplib
1658beef4eedSBram Moolenaarau BufNewFile,BufRead *.sexp setf sexplib
1659beef4eedSBram Moolenaar
1660071d4279SBram Moolenaar" Simula
1661071d4279SBram Moolenaarau BufNewFile,BufRead *.sim			setf simula
1662071d4279SBram Moolenaar
1663071d4279SBram Moolenaar" SINDA
1664071d4279SBram Moolenaarau BufNewFile,BufRead *.sin,*.s85		setf sinda
1665071d4279SBram Moolenaar
1666910f66f9SBram Moolenaar" SiSU
1667d68071d8SBram Moolenaarau BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu
1668910f66f9SBram Moolenaarau BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu
1669910f66f9SBram Moolenaar
1670071d4279SBram Moolenaar" SKILL
1671e756604fSBram Moolenaarau BufNewFile,BufRead *.il,*.ils,*.cdf		setf skill
1672071d4279SBram Moolenaar
1673071d4279SBram Moolenaar" SLRN
1674071d4279SBram Moolenaarau BufNewFile,BufRead .slrnrc			setf slrnrc
1675071d4279SBram Moolenaarau BufNewFile,BufRead *.score			setf slrnsc
1676071d4279SBram Moolenaar
167734cdc3e3SBram Moolenaar" Smalltalk (and TeX)
167834cdc3e3SBram Moolenaarau BufNewFile,BufRead *.st			setf st
167934cdc3e3SBram Moolenaarau BufNewFile,BufRead *.cls
168034cdc3e3SBram Moolenaar	\ if getline(1) =~ '^%' |
168134cdc3e3SBram Moolenaar	\  setf tex |
16823a0d8090SBram Moolenaar	\ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' |
16833a0d8090SBram Moolenaar	\  setf rexx |
168434cdc3e3SBram Moolenaar	\ else |
168534cdc3e3SBram Moolenaar	\  setf st |
168634cdc3e3SBram Moolenaar	\ endif
1687071d4279SBram Moolenaar
1688071d4279SBram Moolenaar" Smarty templates
1689071d4279SBram Moolenaarau BufNewFile,BufRead *.tpl			setf smarty
1690071d4279SBram Moolenaar
1691071d4279SBram Moolenaar" SMIL or XML
1692071d4279SBram Moolenaarau BufNewFile,BufRead *.smil
1693071d4279SBram Moolenaar	\ if getline(1) =~ '<?\s*xml.*?>' |
1694071d4279SBram Moolenaar	\   setf xml |
1695071d4279SBram Moolenaar	\ else |
1696071d4279SBram Moolenaar	\   setf smil |
1697071d4279SBram Moolenaar	\ endif
1698071d4279SBram Moolenaar
1699071d4279SBram Moolenaar" SMIL or SNMP MIB file
1700071d4279SBram Moolenaarau BufNewFile,BufRead *.smi
1701071d4279SBram Moolenaar	\ if getline(1) =~ '\<smil\>' |
1702071d4279SBram Moolenaar	\   setf smil |
1703071d4279SBram Moolenaar	\ else |
1704071d4279SBram Moolenaar	\   setf mib |
1705071d4279SBram Moolenaar	\ endif
1706071d4279SBram Moolenaar
1707071d4279SBram Moolenaar" SMITH
1708071d4279SBram Moolenaarau BufNewFile,BufRead *.smt,*.smith		setf smith
1709071d4279SBram Moolenaar
1710d68071d8SBram Moolenaar" Snobol4 and spitbol
1711d68071d8SBram Moolenaarau BufNewFile,BufRead *.sno,*.spt		setf snobol4
1712071d4279SBram Moolenaar
1713071d4279SBram Moolenaar" SNMP MIB files
1714071d4279SBram Moolenaarau BufNewFile,BufRead *.mib,*.my		setf mib
1715071d4279SBram Moolenaar
1716071d4279SBram Moolenaar" Snort Configuration
171734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.hog,snort.conf,vision.conf	setf hog
1718d09a206eSBram Moolenaarau BufNewFile,BufRead *.rules			call dist#ft#FTRules()
171934e0bfaaSBram Moolenaar
172017d015b2SBram Moolenaar" SPARQL queries
172117d015b2SBram Moolenaarau BufNewFile,BufRead *.rq,*.sparql		setf sparql
172217d015b2SBram Moolenaar
1723071d4279SBram Moolenaar" Spec (Linux RPM)
1724071d4279SBram Moolenaarau BufNewFile,BufRead *.spec			setf spec
1725071d4279SBram Moolenaar
1726071d4279SBram Moolenaar" Speedup (AspenTech plant simulator)
1727071d4279SBram Moolenaarau BufNewFile,BufRead *.speedup,*.spdata,*.spd	setf spup
1728071d4279SBram Moolenaar
1729071d4279SBram Moolenaar" Slice
1730071d4279SBram Moolenaarau BufNewFile,BufRead *.ice			setf slice
1731071d4279SBram Moolenaar
1732071d4279SBram Moolenaar" Spice
1733071d4279SBram Moolenaarau BufNewFile,BufRead *.sp,*.spice		setf spice
1734071d4279SBram Moolenaar
1735071d4279SBram Moolenaar" Spyce
1736071d4279SBram Moolenaarau BufNewFile,BufRead *.spy,*.spi		setf spyce
1737071d4279SBram Moolenaar
1738071d4279SBram Moolenaar" Squid
1739071d4279SBram Moolenaarau BufNewFile,BufRead squid.conf		setf squid
1740071d4279SBram Moolenaar
1741d4755bb0SBram Moolenaar" SQL for Oracle Designer
1742d4755bb0SBram Moolenaarau BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks	setf sql
1743d4755bb0SBram Moolenaar
1744d4755bb0SBram Moolenaar" SQL
1745d09a206eSBram Moolenaarau BufNewFile,BufRead *.sql			call dist#ft#SQL()
1746071d4279SBram Moolenaar
1747071d4279SBram Moolenaar" SQLJ
1748071d4279SBram Moolenaarau BufNewFile,BufRead *.sqlj			setf sqlj
1749071d4279SBram Moolenaar
1750071d4279SBram Moolenaar" SQR
1751071d4279SBram Moolenaarau BufNewFile,BufRead *.sqr,*.sqi		setf sqr
1752071d4279SBram Moolenaar
1753071d4279SBram Moolenaar" OpenSSH configuration
1754071d4279SBram Moolenaarau BufNewFile,BufRead ssh_config,*/.ssh/config		setf sshconfig
1755da84ac2aSBram Moolenaarau BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf	setf sshconfig
1756071d4279SBram Moolenaar
1757071d4279SBram Moolenaar" OpenSSH server configuration
1758071d4279SBram Moolenaarau BufNewFile,BufRead sshd_config			setf sshdconfig
1759da84ac2aSBram Moolenaarau BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf	setf sshdconfig
1760071d4279SBram Moolenaar
1761c6249bb2SBram Moolenaar" Stata
176294237495SBram Moolenaarau BufNewFile,BufRead *.ado,*.do,*.imata,*.mata	setf stata
176394237495SBram Moolenaar" Also *.class, but not when it's a Java bytecode file
176494237495SBram Moolenaarau BufNewFile,BufRead *.class
176594237495SBram Moolenaar	\ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif
1766c6249bb2SBram Moolenaar
1767c6249bb2SBram Moolenaar" SMCL
1768c6249bb2SBram Moolenaarau BufNewFile,BufRead *.hlp,*.ihlp,*.smcl	setf smcl
1769c6249bb2SBram Moolenaar
1770071d4279SBram Moolenaar" Stored Procedures
1771071d4279SBram Moolenaarau BufNewFile,BufRead *.stp			setf stp
1772071d4279SBram Moolenaar
1773071d4279SBram Moolenaar" Standard ML
1774071d4279SBram Moolenaarau BufNewFile,BufRead *.sml			setf sml
1775071d4279SBram Moolenaar
1776aba8857aSBram Moolenaar" Sratus VOS command macro
1777aba8857aSBram Moolenaarau BufNewFile,BufRead *.cm			setf voscm
1778aba8857aSBram Moolenaar
17790d76683eSBram Moolenaar" Swift
17800d76683eSBram Moolenaarau BufNewFile,BufRead *.swift			setf swift
17810d76683eSBram Moolenaarau BufNewFile,BufRead *.swift.gyb		setf swiftgyb
17820d76683eSBram Moolenaar
17830d76683eSBram Moolenaar" Swift Intermediate Language
17840d76683eSBram Moolenaarau BufNewFile,BufRead *.sil			setf sil
17850d76683eSBram Moolenaar
178642eeac35SBram Moolenaar" Sysctl
1787adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf	setf sysctl
178842eeac35SBram Moolenaar
178960cce2fbSBram Moolenaar" Systemd unit files
1790ef6d86c1SBram Moolenaarau BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer}	setf systemd
179163b74a83SBram Moolenaar" Systemd overrides
1792ef6d86c1SBram Moolenaarau BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf	setf systemd
17933b922f11SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/*.d/*.conf	setf systemd
17943b922f11SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/*.d/*.conf	setf systemd
179563b74a83SBram Moolenaar" Systemd temp files
17963b922f11SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/*.d/.#*	setf systemd
1797512fe833SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/.#*		setf systemd
17983b922f11SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/*.d/.#*	setf systemd
1799512fe833SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/.#*	setf systemd
180060cce2fbSBram Moolenaar
18015c73622aSBram Moolenaar" Synopsys Design Constraints
18025c73622aSBram Moolenaarau BufNewFile,BufRead *.sdc			setf sdc
18035c73622aSBram Moolenaar
18041cd871b5SBram Moolenaar" Sudoers
1805adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sudoers,sudoers.tmp	setf sudoers
18061cd871b5SBram Moolenaar
180700a927d6SBram Moolenaar" SVG (Scalable Vector Graphics)
180800a927d6SBram Moolenaarau BufNewFile,BufRead *.svg			setf svg
180900a927d6SBram Moolenaar
1810a5792f58SBram Moolenaar" Tads (or Nroff or Perl test file)
1811071d4279SBram Moolenaarau BufNewFile,BufRead *.t
1812d09a206eSBram Moolenaar	\ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif
1813071d4279SBram Moolenaar
1814071d4279SBram Moolenaar" Tags
1815071d4279SBram Moolenaarau BufNewFile,BufRead tags			setf tags
1816071d4279SBram Moolenaar
1817071d4279SBram Moolenaar" TAK
1818071d4279SBram Moolenaarau BufNewFile,BufRead *.tak			setf tak
1819071d4279SBram Moolenaar
18205c73622aSBram Moolenaar" Task
18215c73622aSBram Moolenaarau BufRead,BufNewFile {pending,completed,undo}.data  setf taskdata
18225c73622aSBram Moolenaarau BufRead,BufNewFile *.task			setf taskedit
18235c73622aSBram Moolenaar
1824a5792f58SBram Moolenaar" Tcl (JACL too)
182578aa5ffeSBram Moolenaarau BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc	setf tcl
1826071d4279SBram Moolenaar
1827071d4279SBram Moolenaar" TealInfo
1828071d4279SBram Moolenaarau BufNewFile,BufRead *.tli			setf tli
1829071d4279SBram Moolenaar
1830071d4279SBram Moolenaar" Telix Salt
1831071d4279SBram Moolenaarau BufNewFile,BufRead *.slt			setf tsalt
1832071d4279SBram Moolenaar
18335e6a7aa2SBram Moolenaar" Tera Term Language or Turtle
18345e6a7aa2SBram Moolenaarau BufRead,BufNewFile *.ttl
18355e6a7aa2SBram Moolenaar	\ if getline(1) =~ '^@\?\(prefix\|base\)' |
18365e6a7aa2SBram Moolenaar	\   setf turtle |
18375e6a7aa2SBram Moolenaar	\ else |
18385e6a7aa2SBram Moolenaar	\   setf teraterm |
18395e6a7aa2SBram Moolenaar	\ endif
1840f9132810SBram Moolenaar
1841071d4279SBram Moolenaar" Terminfo
1842071d4279SBram Moolenaarau BufNewFile,BufRead *.ti			setf terminfo
1843071d4279SBram Moolenaar
1844071d4279SBram Moolenaar" TeX
1845d042c56eSBram Moolenaarau BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl	setf tex
1846d09a206eSBram Moolenaarau BufNewFile,BufRead *.tex			call dist#ft#FTtex()
1847d042c56eSBram Moolenaar
1848aba8857aSBram Moolenaar" ConTeXt
1849faebda8cSBram Moolenaarau BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi,*.mkxl,*.mklx   setf context
1850071d4279SBram Moolenaar
1851071d4279SBram Moolenaar" Texinfo
1852071d4279SBram Moolenaarau BufNewFile,BufRead *.texinfo,*.texi,*.txi	setf texinfo
1853071d4279SBram Moolenaar
1854071d4279SBram Moolenaar" TeX configuration
1855071d4279SBram Moolenaarau BufNewFile,BufRead texmf.cnf			setf texmf
1856071d4279SBram Moolenaar
1857071d4279SBram Moolenaar" Tidy config
185844aaf541SBram Moolenaarau BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf	setf tidy
1859071d4279SBram Moolenaar
1860071d4279SBram Moolenaar" TF mud client
1861071d4279SBram Moolenaarau BufNewFile,BufRead *.tf,.tfrc,tfrc		setf tf
1862071d4279SBram Moolenaar
1863214641f7SBram Moolenaar" tmux configuration
1864036986f1SBram Moolenaarau BufNewFile,BufRead {.,}tmux*.conf		setf tmux
1865214641f7SBram Moolenaar
1866b237ae7bSBram Moolenaar" TOML
1867b237ae7bSBram Moolenaarau BufNewFile,BufRead *.toml			setf toml
1868b237ae7bSBram Moolenaar
1869009b2592SBram Moolenaar" TPP - Text Presentation Program
1870009b2592SBram Moolenaarau BufNewFile,BufReadPost *.tpp			setf tpp
1871009b2592SBram Moolenaar
1872662db673SBram Moolenaar" Treetop
1873662db673SBram Moolenaarau BufRead,BufNewFile *.treetop			setf treetop
1874662db673SBram Moolenaar
1875a5fac54aSBram Moolenaar" Trustees
1876a5fac54aSBram Moolenaarau BufNewFile,BufRead trustees.conf		setf trustees
1877a5fac54aSBram Moolenaar
1878071d4279SBram Moolenaar" TSS - Geometry
1879071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tssgm		setf tssgm
1880071d4279SBram Moolenaar
1881071d4279SBram Moolenaar" TSS - Optics
1882071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tssop		setf tssop
1883071d4279SBram Moolenaar
1884071d4279SBram Moolenaar" TSS - Command Line (temporary)
1885071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tsscl		setf tsscl
1886071d4279SBram Moolenaar
18875b435d67SBram Moolenaar" TWIG files
18885b435d67SBram Moolenaarau BufNewFile,BufReadPost *.twig		setf twig
18895b435d67SBram Moolenaar
1890c0d670ceSBram Moolenaar" Typescript or Qt translation file (which is XML)
1891c0d670ceSBram Moolenaarau BufNewFile,BufReadPost *.ts
1892c0d670ceSBram Moolenaar	\ if getline(1) =~ '<?xml' |
1893c0d670ceSBram Moolenaar	\   setf xml |
1894c0d670ceSBram Moolenaar	\ else |
1895c0d670ceSBram Moolenaar	\   setf typescript |
1896c0d670ceSBram Moolenaar	\ endif
18971a4dce7cSBram Moolenaar
189892852ceeSBram Moolenaar" TypeScript with React
189992852ceeSBram Moolenaarau BufNewFile,BufRead *.tsx			setf typescriptreact
190092852ceeSBram Moolenaar
1901071d4279SBram Moolenaar" Motif UIT/UIL files
1902071d4279SBram Moolenaarau BufNewFile,BufRead *.uit,*.uil		setf uil
1903071d4279SBram Moolenaar
19040dc065eeSBram Moolenaar" Udev conf
1905adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/udev.conf	setf udevconf
19060dc065eeSBram Moolenaar
19070dc065eeSBram Moolenaar" Udev permissions
1908adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm
19090dc065eeSBram Moolenaar"
19100dc065eeSBram Moolenaar" Udev symlinks config
1911adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/cdsymlinks.conf	setf sh
19120dc065eeSBram Moolenaar
1913071d4279SBram Moolenaar" UnrealScript
1914071d4279SBram Moolenaarau BufNewFile,BufRead *.uc			setf uc
1915071d4279SBram Moolenaar
191642eeac35SBram Moolenaar" Updatedb
1917adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/updatedb.conf	setf updatedb
191842eeac35SBram Moolenaar
1919662db673SBram Moolenaar" Upstart (init(8)) config files
192034700a6aSBram Moolenaarau BufNewFile,BufRead */usr/share/upstart/*.conf	       setf upstart
192134700a6aSBram Moolenaarau BufNewFile,BufRead */usr/share/upstart/*.override	       setf upstart
192234700a6aSBram Moolenaarau BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override  setf upstart
192334700a6aSBram Moolenaarau BufNewFile,BufRead */.init/*.conf,*/.init/*.override	       setf upstart
192434700a6aSBram Moolenaarau BufNewFile,BufRead */.config/upstart/*.conf		       setf upstart
192534700a6aSBram Moolenaarau BufNewFile,BufRead */.config/upstart/*.override	       setf upstart
1926662db673SBram Moolenaar
1927c1e37901SBram Moolenaar" Vera
1928c1e37901SBram Moolenaarau BufNewFile,BufRead *.vr,*.vri,*.vrh		setf vera
1929c1e37901SBram Moolenaar
1930071d4279SBram Moolenaar" Verilog HDL
1931071d4279SBram Moolenaarau BufNewFile,BufRead *.v			setf verilog
1932071d4279SBram Moolenaar
1933ae5bce1cSBram Moolenaar" Verilog-AMS HDL
1934ae5bce1cSBram Moolenaarau BufNewFile,BufRead *.va,*.vams		setf verilogams
1935ae5bce1cSBram Moolenaar
193692dff182SBram Moolenaar" SystemVerilog
1937251835e1SBram Moolenaarau BufNewFile,BufRead *.sv,*.svh		setf systemverilog
193892dff182SBram Moolenaar
1939071d4279SBram Moolenaar" VHDL
194040d235e7SBram Moolenaarau BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho  setf vhdl
1941071d4279SBram Moolenaar
1942071d4279SBram Moolenaar" Vim script
1943433f7c88SBram Moolenaarau BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc	setf vim
1944071d4279SBram Moolenaar
1945071d4279SBram Moolenaar" Viminfo file
1946071d4279SBram Moolenaarau BufNewFile,BufRead .viminfo,_viminfo		setf viminfo
1947071d4279SBram Moolenaar
19485c73622aSBram Moolenaar" Virata Config Script File or Drupal module
19495c73622aSBram Moolenaarau BufRead,BufNewFile *.hw,*.module,*.pkg
19505c73622aSBram Moolenaar	\ if getline(1) =~ '<?php' |
19515c73622aSBram Moolenaar	\   setf php |
19525c73622aSBram Moolenaar	\ else |
19535c73622aSBram Moolenaar	\   setf virata |
19545c73622aSBram Moolenaar	\ endif
1955071d4279SBram Moolenaar
1956071d4279SBram Moolenaar" Visual Basic (also uses *.bas) or FORM
1957d09a206eSBram Moolenaarau BufNewFile,BufRead *.frm			call dist#ft#FTVB("form")
1958071d4279SBram Moolenaar
1959071d4279SBram Moolenaar" SaxBasic is close to Visual Basic
1960071d4279SBram Moolenaarau BufNewFile,BufRead *.sba			setf vb
1961071d4279SBram Moolenaar
1962071d4279SBram Moolenaar" Vgrindefs file
1963071d4279SBram Moolenaarau BufNewFile,BufRead vgrindefs			setf vgrindefs
1964071d4279SBram Moolenaar
1965071d4279SBram Moolenaar" VRML V1.0c
1966071d4279SBram Moolenaarau BufNewFile,BufRead *.wrl			setf vrml
1967071d4279SBram Moolenaar
1968dbc28022SBram Moolenaar" Vroom (vim testing and executable documentation)
1969dbc28022SBram Moolenaarau BufNewFile,BufRead *.vroom			setf vroom
1970dbc28022SBram Moolenaar
1971c2734051SBram Moolenaar" Vue.js Single File Component
1972c2734051SBram Moolenaarau BufNewFile,BufRead *.vue			setf vue
1973071d4279SBram Moolenaar
1974d2855f54SBram Moolenaar" WebAssembly
1975d2855f54SBram Moolenaarau BufNewFile,BufRead *.wast,*.wat		setf wast
1976d2855f54SBram Moolenaar
1977c2734051SBram Moolenaar" Webmacro
1978c2734051SBram Moolenaarau BufNewFile,BufRead *.wm			setf webmacro
1979c2734051SBram Moolenaar
1980071d4279SBram Moolenaar" Wget config
1981071d4279SBram Moolenaarau BufNewFile,BufRead .wgetrc,wgetrc		setf wget
1982071d4279SBram Moolenaar
1983071d4279SBram Moolenaar" Website MetaLanguage
1984071d4279SBram Moolenaarau BufNewFile,BufRead *.wml			setf wml
1985071d4279SBram Moolenaar
1986071d4279SBram Moolenaar" Winbatch
1987071d4279SBram Moolenaarau BufNewFile,BufRead *.wbt			setf winbatch
1988071d4279SBram Moolenaar
19891e60789fSBram Moolenaar" WSML
19901e60789fSBram Moolenaarau BufNewFile,BufRead *.wsml			setf wsml
19911e60789fSBram Moolenaar
199201164a65SBram Moolenaar" WPL
199301164a65SBram Moolenaarau BufNewFile,BufRead *.wpl			setf xml
199401164a65SBram Moolenaar
1995071d4279SBram Moolenaar" WvDial
1996071d4279SBram Moolenaarau BufNewFile,BufRead wvdial.conf,.wvdialrc	setf wvdial
1997071d4279SBram Moolenaar
1998071d4279SBram Moolenaar" CVS RC file
1999071d4279SBram Moolenaarau BufNewFile,BufRead .cvsrc			setf cvsrc
2000071d4279SBram Moolenaar
2001071d4279SBram Moolenaar" CVS commit file
2002071d4279SBram Moolenaarau BufNewFile,BufRead cvs\d\+			setf cvs
2003071d4279SBram Moolenaar
2004071d4279SBram Moolenaar" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment
2005071d4279SBram Moolenaar" lines in a WEB file).
2006071d4279SBram Moolenaarau BufNewFile,BufRead *.web
2007071d4279SBram Moolenaar	\ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" |
2008071d4279SBram Moolenaar	\   setf web |
2009071d4279SBram Moolenaar	\ else |
2010071d4279SBram Moolenaar	\   setf winbatch |
2011071d4279SBram Moolenaar	\ endif
2012071d4279SBram Moolenaar
2013071d4279SBram Moolenaar" Windows Scripting Host and Windows Script Component
2014071d4279SBram Moolenaarau BufNewFile,BufRead *.ws[fc]			setf wsh
2015071d4279SBram Moolenaar
2016c81e5e79SBram Moolenaar" XHTML
2017c81e5e79SBram Moolenaarau BufNewFile,BufRead *.xhtml,*.xht		setf xhtml
2018c81e5e79SBram Moolenaar
20196e649224SBram Moolenaar" X Pixmap (dynamically sets colors, this used to trigger on BufEnter to make
20206e649224SBram Moolenaar" it work better, but that breaks setting 'filetype' manually)
20216e649224SBram Moolenaarau BufNewFile,BufRead *.xpm
2022071d4279SBram Moolenaar	\ if getline(1) =~ "XPM2" |
2023071d4279SBram Moolenaar	\   setf xpm2 |
2024071d4279SBram Moolenaar	\ else |
2025071d4279SBram Moolenaar	\   setf xpm |
2026071d4279SBram Moolenaar	\ endif
20276e649224SBram Moolenaarau BufNewFile,BufRead *.xpm2			setf xpm2
2028071d4279SBram Moolenaar
2029071d4279SBram Moolenaar" XFree86 config
2030071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config
2031071d4279SBram Moolenaar	\ if getline(1) =~ '\<XConfigurator\>' |
20328e5af3e5SBram Moolenaar	\   let b:xf86conf_xfree86_version = 3 |
2033071d4279SBram Moolenaar	\ endif |
2034071d4279SBram Moolenaar	\ setf xf86conf
2035adc2182cSBram Moolenaarau BufNewFile,BufRead */xorg.conf.d/*.conf
2036adc2182cSBram Moolenaar	\ let b:xf86conf_xfree86_version = 4 |
2037adc2182cSBram Moolenaar	\ setf xf86conf
2038071d4279SBram Moolenaar
2039071d4279SBram Moolenaar" Xorg config
2040adc2182cSBram Moolenaarau BufNewFile,BufRead xorg.conf,xorg.conf-4	let b:xf86conf_xfree86_version = 4 | setf xf86conf
2041071d4279SBram Moolenaar
204242eeac35SBram Moolenaar" Xinetd conf
2043adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xinetd.conf		setf xinetd
204442eeac35SBram Moolenaar
2045071d4279SBram Moolenaar" XS Perl extension interface language
2046071d4279SBram Moolenaarau BufNewFile,BufRead *.xs			setf xs
2047071d4279SBram Moolenaar
2048071d4279SBram Moolenaar" X resources file
2049071d4279SBram Moolenaarau BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults
2050071d4279SBram Moolenaar
2051071d4279SBram Moolenaar" Xmath
2052071d4279SBram Moolenaarau BufNewFile,BufRead *.msc,*.msf		setf xmath
2053071d4279SBram Moolenaarau BufNewFile,BufRead *.ms
2054d09a206eSBram Moolenaar	\ if !dist#ft#FTnroff() | setf xmath | endif
2055071d4279SBram Moolenaar
2056aba8857aSBram Moolenaar" XML  specific variants: docbk and xbl
2057d09a206eSBram Moolenaarau BufNewFile,BufRead *.xml			call dist#ft#FTxml()
2058071d4279SBram Moolenaar
2059071d4279SBram Moolenaar" XMI (holding UML models) is also XML
2060071d4279SBram Moolenaarau BufNewFile,BufRead *.xmi			setf xml
2061071d4279SBram Moolenaar
2062071d4279SBram Moolenaar" CSPROJ files are Visual Studio.NET's XML-based project config files
2063071d4279SBram Moolenaarau BufNewFile,BufRead *.csproj,*.csproj.user	setf xml
2064071d4279SBram Moolenaar
2065071d4279SBram Moolenaar" Qt Linguist translation source and Qt User Interface Files are XML
20663a4c53baSBram Moolenaar" However, for .ts Typescript is more common.
20673a4c53baSBram Moolenaarau BufNewFile,BufRead *.ui			setf xml
2068071d4279SBram Moolenaar
2069c81e5e79SBram Moolenaar" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
2070c81e5e79SBram Moolenaarau BufNewFile,BufRead *.tpm			setf xml
2071c81e5e79SBram Moolenaar
20720dc065eeSBram Moolenaar" Xdg menus
2073adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xdg/menus/*.menu	setf xml
20740dc065eeSBram Moolenaar
2075aba8857aSBram Moolenaar" ATI graphics driver configuration
2076aba8857aSBram Moolenaarau BufNewFile,BufRead fglrxrc			setf xml
2077aba8857aSBram Moolenaar
2078d473c8c1SBram Moolenaar" Web Services Description Language (WSDL)
2079d473c8c1SBram Moolenaarau BufNewFile,BufRead *.wsdl			setf xml
2080d473c8c1SBram Moolenaar
2081aba8857aSBram Moolenaar" XLIFF (XML Localisation Interchange File Format) is also XML
2082aba8857aSBram Moolenaarau BufNewFile,BufRead *.xlf			setf xml
2083aba8857aSBram Moolenaarau BufNewFile,BufRead *.xliff			setf xml
2084aba8857aSBram Moolenaar
208584f7235bSBram Moolenaar" XML User Interface Language
208684f7235bSBram Moolenaarau BufNewFile,BufRead *.xul			setf xml
208784f7235bSBram Moolenaar
2088aba8857aSBram Moolenaar" X11 xmodmap (also see below)
2089aba8857aSBram Moolenaarau BufNewFile,BufRead *Xmodmap			setf xmodmap
2090aba8857aSBram Moolenaar
2091ce0842a6SBram Moolenaar" Xquery
2092ce0842a6SBram Moolenaarau BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy	setf xquery
2093ce0842a6SBram Moolenaar
2094071d4279SBram Moolenaar" XSD
2095071d4279SBram Moolenaarau BufNewFile,BufRead *.xsd			setf xsd
2096071d4279SBram Moolenaar
2097071d4279SBram Moolenaar" Xslt
2098071d4279SBram Moolenaarau BufNewFile,BufRead *.xsl,*.xslt		setf xslt
2099071d4279SBram Moolenaar
2100071d4279SBram Moolenaar" Yacc
21010858917eSBram Moolenaarau BufNewFile,BufRead *.yy,*.yxx,*.y++		setf yacc
210242eeac35SBram Moolenaar
210342eeac35SBram Moolenaar" Yacc or racc
2104d09a206eSBram Moolenaarau BufNewFile,BufRead *.y			call dist#ft#FTy()
2105071d4279SBram Moolenaar
2106da1c11c6SBram Moolenaar" Yaml
2107da1c11c6SBram Moolenaarau BufNewFile,BufRead *.yaml,*.yml		setf yaml
2108da1c11c6SBram Moolenaar
2109da1c11c6SBram Moolenaar" Raml
2110da1c11c6SBram Moolenaarau BufNewFile,BufRead *.raml			setf raml
2111071d4279SBram Moolenaar
21125302d9ebSBram Moolenaar" yum conf (close enough to dosini)
21135302d9ebSBram Moolenaarau BufNewFile,BufRead */etc/yum.conf		setf dosini
21145302d9ebSBram Moolenaar
21151aeaf8c0SBram Moolenaar" Zimbu
21161aeaf8c0SBram Moolenaarau BufNewFile,BufRead *.zu			setf zimbu
2117ed32d942SBram Moolenaar" Zimbu Templates
2118ed32d942SBram Moolenaarau BufNewFile,BufRead *.zut			setf zimbutempl
21191aeaf8c0SBram Moolenaar
2120899dddf8SBram Moolenaar" Zope
2121899dddf8SBram Moolenaar"   dtml (zope dynamic template markup language), pt (zope page template),
2122899dddf8SBram Moolenaar"   cpt (zope form controller page template)
2123d09a206eSBram Moolenaarau BufNewFile,BufRead *.dtml,*.pt,*.cpt		call dist#ft#FThtml()
2124899dddf8SBram Moolenaar"   zsql (zope sql method)
2125d09a206eSBram Moolenaarau BufNewFile,BufRead *.zsql			call dist#ft#SQL()
2126899dddf8SBram Moolenaar
2127071d4279SBram Moolenaar" Z80 assembler asz80
2128071d4279SBram Moolenaarau BufNewFile,BufRead *.z8a			setf z8a
2129071d4279SBram Moolenaar
2130071d4279SBram Moolenaaraugroup END
2131071d4279SBram Moolenaar
2132071d4279SBram Moolenaar
2133071d4279SBram Moolenaar" Source the user-specified filetype file, for backwards compatibility with
2134071d4279SBram Moolenaar" Vim 5.x.
21354317d9b4SBram Moolenaarif exists("myfiletypefile") && filereadable(expand(myfiletypefile))
2136071d4279SBram Moolenaar  execute "source " . myfiletypefile
2137071d4279SBram Moolenaarendif
2138071d4279SBram Moolenaar
2139071d4279SBram Moolenaar
2140071d4279SBram Moolenaar" Check for "*" after loading myfiletypefile, so that scripts.vim is only used
2141071d4279SBram Moolenaar" when there are no matching file name extensions.
2142071d4279SBram Moolenaar" Don't do this for compressed files.
2143071d4279SBram Moolenaaraugroup filetypedetect
2144071d4279SBram Moolenaarau BufNewFile,BufRead *
2145071d4279SBram Moolenaar	\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
2146071d4279SBram Moolenaar	\ | runtime! scripts.vim | endif
2147071d4279SBram Moolenaarau StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
2148071d4279SBram Moolenaar
2149071d4279SBram Moolenaar
2150071d4279SBram Moolenaar" Extra checks for when no filetype has been detected now.  Mostly used for
2151071d4279SBram Moolenaar" patterns that end in "*".  E.g., "zsh*" matches "zsh.vim", but that's a Vim
2152071d4279SBram Moolenaar" script file.
21534317d9b4SBram Moolenaar" Most of these should call s:StarSetf() to avoid names ending in .gz and the
21544317d9b4SBram Moolenaar" like are used.
2155071d4279SBram Moolenaar
2156f0b03c4eSBram Moolenaar" More Apache style config files
2157f0b03c4eSBram Moolenaarau BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/*	call s:StarSetf('apachestyle')
2158723dd946SBram Moolenaarau BufNewFile,BufRead proftpd.conf*					call s:StarSetf('apachestyle')
2159f0b03c4eSBram Moolenaar
2160adc2182cSBram Moolenaar" More Apache config files
2161adc2182cSBram Moolenaarau BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*	call s:StarSetf('apache')
2162770ddbe1SZdenek Dohnalau BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf*		call s:StarSetf('apache')
2163c236c16dSBram Moolenaar
2164bfd8fc05SBram Moolenaar" Asterisk config file
2165bfd8fc05SBram Moolenaarau BufNewFile,BufRead *asterisk/*.conf*		call s:StarSetf('asterisk')
2166433f7c88SBram Moolenaarau BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm')
2167bfd8fc05SBram Moolenaar
2168c81e5e79SBram Moolenaar" Bazaar version control
2169c81e5e79SBram Moolenaarau BufNewFile,BufRead bzr_log.*			setf bzr
2170c81e5e79SBram Moolenaar
217139170e2dSBram Moolenaar" Bazel build file
217239170e2dSBram Moolenaarif !has("fname_case")
21734488f5a5SBram Moolenaar  au BufNewFile,BufRead *.BUILD,BUILD		setf bzl
217439170e2dSBram Moolenaarendif
217539170e2dSBram Moolenaar
2176071d4279SBram Moolenaar" BIND zone
2177fa1d140aSBram Moolenaarau BufNewFile,BufRead */named/db.*,*/bind/db.*	call s:StarSetf('bindzone')
2178071d4279SBram Moolenaar
2179dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.project.*		call s:StarSetf('cabalproject')
2180dcbab75dSBram Moolenaar
21818e5af3e5SBram Moolenaar" Calendar
21828e5af3e5SBram Moolenaarau BufNewFile,BufRead */.calendar/*,
21838e5af3e5SBram Moolenaar	\*/share/calendar/*/calendar.*,*/share/calendar/calendar.*
21848e5af3e5SBram Moolenaar	\					call s:StarSetf('calendar')
21858e5af3e5SBram Moolenaar
2186071d4279SBram Moolenaar" Changelog
21874317d9b4SBram Moolenaarau BufNewFile,BufRead [cC]hange[lL]og*
21884317d9b4SBram Moolenaar	\ if getline(1) =~ '; urgency='
21894317d9b4SBram Moolenaar	\|  call s:StarSetf('debchangelog')
21904317d9b4SBram Moolenaar	\|else
21914317d9b4SBram Moolenaar	\|  call s:StarSetf('changelog')
21924317d9b4SBram Moolenaar	\|endif
2193071d4279SBram Moolenaar
2194071d4279SBram Moolenaar" Crontab
2195adc2182cSBram Moolenaarau BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/*		call s:StarSetf('crontab')
2196d2cec5b0SBram Moolenaar
21978e5af3e5SBram Moolenaar" dnsmasq(8) configuration
21988e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/dnsmasq.d/*		call s:StarSetf('dnsmasq')
21998e5af3e5SBram Moolenaar
2200071d4279SBram Moolenaar" Dracula
22014317d9b4SBram Moolenaarau BufNewFile,BufRead drac.*			call s:StarSetf('dracula')
2202071d4279SBram Moolenaar
2203071d4279SBram Moolenaar" Fvwm
2204c81e5e79SBram Moolenaarau BufNewFile,BufRead */.fvwm/*			call s:StarSetf('fvwm')
2205071d4279SBram Moolenaarau BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook
22064317d9b4SBram Moolenaar	\ let b:fvwm_version = 1 | call s:StarSetf('fvwm')
2207071d4279SBram Moolenaarau BufNewFile,BufRead *fvwm2rc*
22084317d9b4SBram Moolenaar	\ if expand("<afile>:e") == "m4"
22094317d9b4SBram Moolenaar	\|  call s:StarSetf('fvwm2m4')
22104317d9b4SBram Moolenaar	\|else
22114317d9b4SBram Moolenaar	\|  let b:fvwm_version = 2 | call s:StarSetf('fvwm')
22124317d9b4SBram Moolenaar	\|endif
2213071d4279SBram Moolenaar
22145c73622aSBram Moolenaar" Gedcom
22158e5af3e5SBram Moolenaarau BufNewFile,BufRead */tmp/lltmp*		call s:StarSetf('gedcom')
22165c73622aSBram Moolenaar
2217723dd946SBram Moolenaar" Git
2218723dd946SBram Moolenaarau BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/*	call s:StarSetf('gitconfig')
2219723dd946SBram Moolenaar
2220723dd946SBram Moolenaar" Gitolite
2221723dd946SBram Moolenaarau BufNewFile,BufRead */gitolite-admin/conf/*	call s:StarSetf('gitolite')
2222723dd946SBram Moolenaar
2223071d4279SBram Moolenaar" GTK RC
22244317d9b4SBram Moolenaarau BufNewFile,BufRead .gtkrc*,gtkrc*		call s:StarSetf('gtkrc')
2225071d4279SBram Moolenaar
2226071d4279SBram Moolenaar" Jam
22274317d9b4SBram Moolenaarau BufNewFile,BufRead Prl*.*,JAM*.*		call s:StarSetf('jam')
2228071d4279SBram Moolenaar
2229071d4279SBram Moolenaar" Jargon
2230071d4279SBram Moolenaarau! BufNewFile,BufRead *jarg*
22314317d9b4SBram Moolenaar	\ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE'
22324317d9b4SBram Moolenaar	\|  call s:StarSetf('jargon')
22334317d9b4SBram Moolenaar	\|endif
2234071d4279SBram Moolenaar
2235723dd946SBram Moolenaar" Java Properties resource file (note: doesn't catch font.properties.pl)
2236723dd946SBram Moolenaarau BufNewFile,BufRead *.properties_??_??_*	call s:StarSetf('jproperties')
2237723dd946SBram Moolenaar
22388424a624SBram Moolenaar" Kconfig
22398424a624SBram Moolenaarau BufNewFile,BufRead Kconfig.*			call s:StarSetf('kconfig')
22408424a624SBram Moolenaar
22418e5af3e5SBram Moolenaar" Lilo: Linux loader
22428e5af3e5SBram Moolenaarau BufNewFile,BufRead lilo.conf*		call s:StarSetf('lilo')
22438e5af3e5SBram Moolenaar
224440af4e39SBram Moolenaar" Logcheck
2245adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/logcheck/*.d*/*	call s:StarSetf('logcheck')
224640af4e39SBram Moolenaar
2247071d4279SBram Moolenaar" Makefile
22484317d9b4SBram Moolenaarau BufNewFile,BufRead [mM]akefile*		call s:StarSetf('make')
2249071d4279SBram Moolenaar
2250071d4279SBram Moolenaar" Ruby Makefile
22514317d9b4SBram Moolenaarau BufNewFile,BufRead [rR]akefile*		call s:StarSetf('ruby')
2252071d4279SBram Moolenaar
2253aba8857aSBram Moolenaar" Mail (also matches muttrc.vim, so this is below the other checks)
225401164a65SBram Moolenaarau BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\}	setf mail
2255aba8857aSBram Moolenaar
225642ebd066SBram Moolenaarau BufNewFile,BufRead reportbug-*		call s:StarSetf('mail')
225742ebd066SBram Moolenaar
2258aba8857aSBram Moolenaar" Modconf
22598e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/modutils/*
22608e5af3e5SBram Moolenaar	\ if executable(expand("<afile>")) != 1
22618e5af3e5SBram Moolenaar	\|  call s:StarSetf('modconf')
22628e5af3e5SBram Moolenaar	\|endif
2263adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/modprobe.*		call s:StarSetf('modconf')
2264aba8857aSBram Moolenaar
2265071d4279SBram Moolenaar" Mutt setup file
2266aba8857aSBram Moolenaarau BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc*	call s:StarSetf('muttrc')
22678aff23a1SBram Moolenaarau BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc*		call s:StarSetf('muttrc')
2268071d4279SBram Moolenaar
226901164a65SBram Moolenaar" Neomutt setup file
227001164a65SBram Moolenaarau BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc*	call s:StarSetf('neomuttrc')
227101164a65SBram Moolenaarau BufNewFile,BufRead neomuttrc*,Neomuttrc*		call s:StarSetf('neomuttrc')
227201164a65SBram Moolenaar
2273071d4279SBram Moolenaar" Nroff macros
22744317d9b4SBram Moolenaarau BufNewFile,BufRead tmac.*			call s:StarSetf('nroff')
2275071d4279SBram Moolenaar
227625de4c23SBram Moolenaar" OpenBSD hostname.if
227725de4c23SBram Moolenaarau BufNewFile,BufRead /etc/hostname.*		call s:StarSetf('config')
227825de4c23SBram Moolenaar
227942eeac35SBram Moolenaar" Pam conf
2280adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/pam.d/*		call s:StarSetf('pamconf')
228142eeac35SBram Moolenaar
2282071d4279SBram Moolenaar" Printcap and Termcap
2283071d4279SBram Moolenaarau BufNewFile,BufRead *printcap*
22844317d9b4SBram Moolenaar	\ if !did_filetype()
22854317d9b4SBram Moolenaar	\|  let b:ptcap_type = "print" | call s:StarSetf('ptcap')
22864317d9b4SBram Moolenaar	\|endif
2287071d4279SBram Moolenaarau BufNewFile,BufRead *termcap*
22884317d9b4SBram Moolenaar	\ if !did_filetype()
22894317d9b4SBram Moolenaar	\|  let b:ptcap_type = "term" | call s:StarSetf('ptcap')
22904317d9b4SBram Moolenaar	\|endif
2291071d4279SBram Moolenaar
22920187ca0bSBram Moolenaar" ReDIF
22930187ca0bSBram Moolenaar" Only used when the .rdf file was not detected to be XML.
2294d09a206eSBram Moolenaarau BufRead,BufNewFile *.rdf			call dist#ft#Redif()
22950187ca0bSBram Moolenaar
22968e5af3e5SBram Moolenaar" Remind
22978e5af3e5SBram Moolenaarau BufNewFile,BufRead .reminders*		call s:StarSetf('remind')
22988e5af3e5SBram Moolenaar
2299723dd946SBram Moolenaar" SGML catalog file
2300723dd946SBram Moolenaarau BufNewFile,BufRead sgml.catalog*		call s:StarSetf('catalog')
2301723dd946SBram Moolenaar
2302409da842SBram Moolenaar" avoid doc files being recognized a shell files
2303409da842SBram Moolenaarau BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text
2304409da842SBram Moolenaar
2305147e7d0cSBram Moolenaar" Shell scripts ending in a star
2306409da842SBram Moolenaarau BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash")
2307147e7d0cSBram Moolenaarau BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
2308147e7d0cSBram Moolenaarau BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
2309147e7d0cSBram Moolenaar
2310c143fa07SBram Moolenaar" Sudoers
2311c143fa07SBram Moolenaarau BufNewFile,BufRead */etc/sudoers.d/*		call s:StarSetf('sudoers')
2312c143fa07SBram Moolenaar
2313147e7d0cSBram Moolenaar" tcsh scripts ending in a star
2314147e7d0cSBram Moolenaarau BufNewFile,BufRead .tcshrc*	call dist#ft#SetFileTypeShell("tcsh")
2315147e7d0cSBram Moolenaar
2316147e7d0cSBram Moolenaar" csh scripts ending in a star
2317147e7d0cSBram Moolenaarau BufNewFile,BufRead .login*,.cshrc*  call dist#ft#CSH()
2318147e7d0cSBram Moolenaar
2319e519eb41SEric Pruitt" tmux configuration with arbitrary extension
2320e519eb41SEric Pruittau BufNewFile,BufRead {.,}tmux*.conf*		setf tmux
2321e519eb41SEric Pruitt
2322723dd946SBram Moolenaar" VHDL
2323723dd946SBram Moolenaarau BufNewFile,BufRead *.vhdl_[0-9]*		call s:StarSetf('vhdl')
2324723dd946SBram Moolenaar
2325071d4279SBram Moolenaar" Vim script
23264317d9b4SBram Moolenaarau BufNewFile,BufRead *vimrc*			call s:StarSetf('vim')
2327071d4279SBram Moolenaar
2328071d4279SBram Moolenaar" Subversion commit file
2329def9e829SBram Moolenaarau BufNewFile,BufRead svn-commit*.tmp		setf svn
2330071d4279SBram Moolenaar
2331071d4279SBram Moolenaar" X resources file
23324317d9b4SBram Moolenaarau BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults')
2333071d4279SBram Moolenaar
2334071d4279SBram Moolenaar" XFree86 config
2335071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config-4*
2336adc2182cSBram Moolenaar	\ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf')
2337071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config*
23384317d9b4SBram Moolenaar	\ if getline(1) =~ '\<XConfigurator\>'
2339adc2182cSBram Moolenaar	\|  let b:xf86conf_xfree86_version = 3
23404317d9b4SBram Moolenaar	\|endif
23414317d9b4SBram Moolenaar	\|call s:StarSetf('xf86conf')
2342071d4279SBram Moolenaar
2343071d4279SBram Moolenaar" X11 xmodmap
23444317d9b4SBram Moolenaarau BufNewFile,BufRead *xmodmap*			call s:StarSetf('xmodmap')
2345071d4279SBram Moolenaar
234642eeac35SBram Moolenaar" Xinetd conf
2347adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xinetd.d/*		call s:StarSetf('xinetd')
234842eeac35SBram Moolenaar
23495302d9ebSBram Moolenaar" yum conf (close enough to dosini)
23505302d9ebSBram Moolenaarau BufNewFile,BufRead */etc/yum.repos.d/*	call s:StarSetf('dosini')
23515302d9ebSBram Moolenaar
23522bf60b30SBram Moolenaar" Z-Shell script ending in a star
23532bf60b30SBram Moolenaarau BufNewFile,BufRead .zsh*,.zlog*,.zcompdump*  call s:StarSetf('zsh')
23544317d9b4SBram Moolenaarau BufNewFile,BufRead zsh*,zlog*		call s:StarSetf('zsh')
2355071d4279SBram Moolenaar
2356071d4279SBram Moolenaar
2357b6b046b2SBram Moolenaar" Plain text files, needs to be far down to not override others.  This avoids
2358b6b046b2SBram Moolenaar" the "conf" type being used if there is a line starting with '#'.
2359868831f1SBram Moolenaarau BufNewFile,BufRead *.text,README		setf text
2360868831f1SBram Moolenaar
2361868831f1SBram Moolenaar" Help files match *.txt but should have a last line that is a modeline.
2362868831f1SBram Moolenaarau BufNewFile,BufRead *.txt
2363868831f1SBram Moolenaar	\  if getline('$') !~ 'vim:.*ft=help'
2364868831f1SBram Moolenaar	\|   setf text
2365868831f1SBram Moolenaar	\| endif
2366b6b046b2SBram Moolenaar
236743b36a3bSBram Moolenaar
236843b36a3bSBram Moolenaar" Use the filetype detect plugins.  They may overrule any of the previously
236943b36a3bSBram Moolenaar" detected filetypes.
237043b36a3bSBram Moolenaarruntime! ftdetect/*.vim
237143b36a3bSBram Moolenaar
237273b24708SBram Moolenaar" NOTE: The above command could have ended the filetypedetect autocmd group
23735dc6252dSBram Moolenaar" and started another one. Let's make sure it has ended to get to a consistent
237473b24708SBram Moolenaar" state.
237573b24708SBram Moolenaaraugroup END
237643b36a3bSBram Moolenaar
23773e54569bSBram Moolenaar" Generic configuration file. Use FALLBACK, it's just guessing!
237873b24708SBram Moolenaarau filetypedetect BufNewFile,BufRead,StdinReadPost *
2379071d4279SBram Moolenaar	\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
2380071d4279SBram Moolenaar	\    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
2381071d4279SBram Moolenaar	\	|| getline(4) =~ '^#' || getline(5) =~ '^#') |
23823e54569bSBram Moolenaar	\   setf FALLBACK conf |
2383071d4279SBram Moolenaar	\ endif
2384071d4279SBram Moolenaar
2385071d4279SBram Moolenaar
2386071d4279SBram Moolenaar" If the GUI is already running, may still need to install the Syntax menu.
2387071d4279SBram Moolenaar" Don't do it when the 'M' flag is included in 'guioptions'.
2388071d4279SBram Moolenaarif has("menu") && has("gui_running")
2389071d4279SBram Moolenaar      \ && !exists("did_install_syntax_menu") && &guioptions !~# "M"
2390071d4279SBram Moolenaar  source <sfile>:p:h/menu.vim
2391071d4279SBram Moolenaarendif
2392071d4279SBram Moolenaar
239334e0bfaaSBram Moolenaar" Function called for testing all functions defined here.  These are
239434e0bfaaSBram Moolenaar" script-local, thus need to be executed here.
239534e0bfaaSBram Moolenaar" Returns a string with error messages (hopefully empty).
239634e0bfaaSBram Moolenaarfunc! TestFiletypeFuncs(testlist)
239734e0bfaaSBram Moolenaar  let output = ''
239834e0bfaaSBram Moolenaar  for f in a:testlist
239934e0bfaaSBram Moolenaar    try
240034e0bfaaSBram Moolenaar      exe f
240134e0bfaaSBram Moolenaar    catch
240234e0bfaaSBram Moolenaar      let output = output . "\n" . f . ": " . v:exception
240334e0bfaaSBram Moolenaar    endtry
240434e0bfaaSBram Moolenaar  endfor
240534e0bfaaSBram Moolenaar  return output
240634e0bfaaSBram Moolenaarendfunc
240734e0bfaaSBram Moolenaar
2408071d4279SBram Moolenaar" Restore 'cpoptions'
2409071d4279SBram Moolenaarlet &cpo = s:cpo_save
2410071d4279SBram Moolenaarunlet s:cpo_save
2411