mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-09 03:53:52 -05:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17c2b630e1 |
@@ -7,7 +7,7 @@ A collection of language packs for Vim.
|
|||||||
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||||
|
|
||||||
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->196<!--/Package Count--> packages it consists of.
|
- It **installs and updates 120+ times faster** than the <!--Package Count-->199<!--/Package Count--> packages it consists of.
|
||||||
- It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
|
- It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).
|
||||||
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
||||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||||
@@ -81,6 +81,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [basic](https://github.com/vim/vim/tree/master/runtime)
|
- [basic](https://github.com/vim/vim/tree/master/runtime)
|
||||||
- [blade](https://github.com/jwalton512/vim-blade)
|
- [blade](https://github.com/jwalton512/vim-blade)
|
||||||
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
|
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
|
||||||
|
- [bzl](https://github.com/vim/vim/tree/master/runtime)
|
||||||
- [c/c++](https://github.com/vim-jp/vim-cpp)
|
- [c/c++](https://github.com/vim-jp/vim-cpp)
|
||||||
- [caddyfile](https://github.com/isobit/vim-caddyfile)
|
- [caddyfile](https://github.com/isobit/vim-caddyfile)
|
||||||
- [carp](https://github.com/hellerve/carp-vim)
|
- [carp](https://github.com/hellerve/carp-vim)
|
||||||
@@ -177,6 +178,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [plantuml](https://github.com/aklt/plantuml-syntax)
|
- [plantuml](https://github.com/aklt/plantuml-syntax)
|
||||||
- [pony](https://github.com/jakwings/vim-pony)
|
- [pony](https://github.com/jakwings/vim-pony)
|
||||||
- [powershell](https://github.com/PProvost/vim-ps1)
|
- [powershell](https://github.com/PProvost/vim-ps1)
|
||||||
|
- [prolog](https://github.com/vim/vim/tree/master/runtime)
|
||||||
- [protobuf](https://github.com/uarun/vim-protobuf)
|
- [protobuf](https://github.com/uarun/vim-protobuf)
|
||||||
- [pug](https://github.com/digitaltoad/vim-pug)
|
- [pug](https://github.com/digitaltoad/vim-pug)
|
||||||
- [puppet](https://github.com/rodjek/vim-puppet)
|
- [puppet](https://github.com/rodjek/vim-puppet)
|
||||||
@@ -213,6 +215,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
|||||||
- [swift](https://github.com/keith/swift.vim)
|
- [swift](https://github.com/keith/swift.vim)
|
||||||
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)
|
- [sxhkd](https://github.com/baskerville/vim-sxhkdrc)
|
||||||
- [systemd](https://github.com/wgwoods/vim-systemd-syntax)
|
- [systemd](https://github.com/wgwoods/vim-systemd-syntax)
|
||||||
|
- [tads](https://github.com/vim/vim/tree/master/runtime)
|
||||||
- [terraform](https://github.com/hashivim/vim-terraform)
|
- [terraform](https://github.com/hashivim/vim-terraform)
|
||||||
- [textile](https://github.com/timcharper/textile.vim)
|
- [textile](https://github.com/timcharper/textile.vim)
|
||||||
- [thrift](https://github.com/solarnz/thrift.vim)
|
- [thrift](https://github.com/solarnz/thrift.vim)
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ func! s:Setf(ft)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! polyglot#Heuristics()
|
func! polyglot#Shebang()
|
||||||
" Try to detect filetype from shebang
|
" Try to detect filetype from shebang
|
||||||
let l:filetype = polyglot#Shebang()
|
let ft = polyglot#ShebangFiletype()
|
||||||
if l:filetype != ""
|
if ft != ""
|
||||||
exec "setf " . l:filetype
|
call s:Setf(ft)
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -52,6 +52,8 @@ let s:interpreters = {
|
|||||||
\ 'cperl': 'perl',
|
\ 'cperl': 'perl',
|
||||||
\ 'perl': 'perl',
|
\ 'perl': 'perl',
|
||||||
\ 'php': 'php',
|
\ 'php': 'php',
|
||||||
|
\ 'swipl': 'prolog',
|
||||||
|
\ 'yap': 'prolog',
|
||||||
\ 'pwsh': 'ps1',
|
\ 'pwsh': 'ps1',
|
||||||
\ 'python': 'python',
|
\ 'python': 'python',
|
||||||
\ 'python2': 'python',
|
\ 'python2': 'python',
|
||||||
@@ -95,7 +97,7 @@ let s:r_hashbang = '^#!\s*\(\S\+\)\s*\(.*\)\s*'
|
|||||||
let s:r_envflag = '%(\S\+=\S\+\|-[iS]\|--ignore-environment\|--split-string\)'
|
let s:r_envflag = '%(\S\+=\S\+\|-[iS]\|--ignore-environment\|--split-string\)'
|
||||||
let s:r_env = '^\%(\' . s:r_envflag . '\s\+\)*\(\S\+\)'
|
let s:r_env = '^\%(\' . s:r_envflag . '\s\+\)*\(\S\+\)'
|
||||||
|
|
||||||
func! polyglot#Shebang()
|
func! polyglot#ShebangFiletype()
|
||||||
let l:line1 = getline(1)
|
let l:line1 = getline(1)
|
||||||
|
|
||||||
if l:line1 !~# "^#!"
|
if l:line1 !~# "^#!"
|
||||||
@@ -133,7 +135,7 @@ func! polyglot#Shebang()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! polyglot#DetectInpFiletype()
|
func! polyglot#DetectInpFiletype()
|
||||||
let line = getline(1)
|
let line = getline(nextnonblank(1))
|
||||||
if line =~# '^\*'
|
if line =~# '^\*'
|
||||||
call s:Setf('abaqus') | return
|
call s:Setf('abaqus') | return
|
||||||
endif
|
endif
|
||||||
@@ -269,10 +271,10 @@ func! polyglot#DetectIdrFiletype()
|
|||||||
if line =~# '^%access .*'
|
if line =~# '^%access .*'
|
||||||
call s:Setf('idris') | return
|
call s:Setf('idris') | return
|
||||||
endif
|
endif
|
||||||
|
endfor
|
||||||
if exists("g:filetype_idr")
|
if exists("g:filetype_idr")
|
||||||
call s:Setf(g:filetype_idr) | return
|
call s:Setf(g:filetype_idr) | return
|
||||||
endif
|
endif
|
||||||
endfor
|
|
||||||
call s:Setf('idris2') | return
|
call s:Setf('idris2') | return
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
@@ -296,6 +298,89 @@ func! polyglot#DetectBasFiletype()
|
|||||||
call s:Setf('basic') | return
|
call s:Setf('basic') | return
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func! polyglot#DetectPmFiletype()
|
||||||
|
let line = getline(nextnonblank(1))
|
||||||
|
if line =~# 'XPM2'
|
||||||
|
call s:Setf('xpm2') | return
|
||||||
|
endif
|
||||||
|
if line =~# 'XPM'
|
||||||
|
call s:Setf('xpm') | return
|
||||||
|
endif
|
||||||
|
for lnum in range(1, min([line("$"), 50]))
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||||
|
call s:Setf('raku') | return
|
||||||
|
endif
|
||||||
|
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if exists("g:filetype_pm")
|
||||||
|
call s:Setf(g:filetype_pm) | return
|
||||||
|
endif
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func! polyglot#DetectPlFiletype()
|
||||||
|
let line = getline(nextnonblank(1))
|
||||||
|
if line =~# '^[^#]*:-' || line =~# '^\s*\%(%\|/\*\)' || line =~# '\.\s*$'
|
||||||
|
call s:Setf('prolog') | return
|
||||||
|
endif
|
||||||
|
for lnum in range(1, min([line("$"), 50]))
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||||
|
call s:Setf('raku') | return
|
||||||
|
endif
|
||||||
|
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if exists("g:filetype_pl")
|
||||||
|
call s:Setf(g:filetype_pl) | return
|
||||||
|
endif
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func! polyglot#DetectTFiletype()
|
||||||
|
for lnum in range(1, min([line("$"), 5]))
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~# '^\.'
|
||||||
|
call s:Setf('nroff') | return
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
for lnum in range(1, min([line("$"), 50]))
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~# '^\s*\%(use\s\+v6\(\<\|\>\)\|\(\<\|\>\)module\(\<\|\>\)\|\(\<\|\>\)\%(my\s\+\)\=class\(\<\|\>\)\)'
|
||||||
|
call s:Setf('raku') | return
|
||||||
|
endif
|
||||||
|
if line =~# '\(\<\|\>\)use\s\+\%(strict\(\<\|\>\)\|v\=5\.\)'
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
if exists("g:filetype_t")
|
||||||
|
call s:Setf(g:filetype_t) | return
|
||||||
|
endif
|
||||||
|
call s:Setf('perl') | return
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func! polyglot#DetectTt2Filetype()
|
||||||
|
for lnum in range(1, min([line("$"), 3]))
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~? '<\%(!DOCTYPE HTML\|[%?]\|html\)'
|
||||||
|
call s:Setf('tt2html') | return
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call s:Setf('tt2') | return
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func! polyglot#DetectHtmlFiletype()
|
||||||
|
let line = getline(nextnonblank(1))
|
||||||
|
if line =~# '^\(%\|<[%&].*>\)'
|
||||||
|
call s:Setf('mason') | return
|
||||||
|
endif
|
||||||
|
call s:Setf('html') | return
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Restore 'cpoptions'
|
" Restore 'cpoptions'
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ let s:globs = {
|
|||||||
\ 'basic': '*.basic',
|
\ 'basic': '*.basic',
|
||||||
\ 'blade': '*.blade,*.blade.php',
|
\ 'blade': '*.blade,*.blade.php',
|
||||||
\ 'brewfile': 'Brewfile',
|
\ 'brewfile': 'Brewfile',
|
||||||
|
\ 'bzl': '*.bzl,BUCK,BUILD,BUILD.bazel,Tiltfile,WORKSPACE',
|
||||||
\ 'c': '*.c,*.cats,*.h,*.idc,*.qc',
|
\ 'c': '*.c,*.cats,*.h,*.idc,*.qc',
|
||||||
\ 'caddyfile': 'Caddyfile',
|
\ 'caddyfile': 'Caddyfile',
|
||||||
\ 'carp': '*.carp',
|
\ 'carp': '*.carp',
|
||||||
@@ -129,6 +130,7 @@ let s:globs = {
|
|||||||
\ 'mako': '*.mako,*.mao',
|
\ 'mako': '*.mako,*.mao',
|
||||||
\ 'markdown': '*.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn,*.mkdown,*.ronn,*.workbook,contents.lr',
|
\ 'markdown': '*.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn,*.mkdown,*.ronn,*.workbook,contents.lr',
|
||||||
\ 'markdown.mdx': '*.mdx',
|
\ 'markdown.mdx': '*.mdx',
|
||||||
|
\ 'mason': '*.mason,*.mhtml,*.comp',
|
||||||
\ 'meson': 'meson.build,meson_options.txt',
|
\ 'meson': 'meson.build,meson_options.txt',
|
||||||
\ 'mma': '*.mathematica,*.cdf,*.m,*.ma,*.mt,*.nb,*.nbp,*.wl,*.wlt,*.wls,*.mma',
|
\ 'mma': '*.mathematica,*.cdf,*.m,*.ma,*.mt,*.nb,*.nbp,*.wl,*.wlt,*.wls,*.mma',
|
||||||
\ 'moon': '*.moon',
|
\ 'moon': '*.moon',
|
||||||
@@ -151,7 +153,9 @@ let s:globs = {
|
|||||||
\ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,Makefile.PL,Rexfile,ack,cpanfile',
|
\ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,Makefile.PL,Rexfile,ack,cpanfile',
|
||||||
\ 'php': '*.php,*.aw,*.ctp,*.fcgi,*.inc,*.php3,*.php4,*.php5,*.phps,*.phpt,Phakefile',
|
\ 'php': '*.php,*.aw,*.ctp,*.fcgi,*.inc,*.php3,*.php4,*.php5,*.phps,*.phpt,Phakefile',
|
||||||
\ 'plantuml': '*.puml,*.iuml,*.plantuml,*.uml,*.pu',
|
\ 'plantuml': '*.puml,*.iuml,*.plantuml,*.uml,*.pu',
|
||||||
|
\ 'pod': '*.pod',
|
||||||
\ 'pony': '*.pony',
|
\ 'pony': '*.pony',
|
||||||
|
\ 'prolog': '*.pl,*.pro,*.prolog,*.yap',
|
||||||
\ 'proto': '*.proto',
|
\ 'proto': '*.proto',
|
||||||
\ 'ps1': '*.ps1,*.psd1,*.psm1,*.pssc',
|
\ 'ps1': '*.ps1,*.psd1,*.psm1,*.pssc',
|
||||||
\ 'ps1xml': '*.ps1xml',
|
\ 'ps1xml': '*.ps1xml',
|
||||||
@@ -190,6 +194,7 @@ let s:globs = {
|
|||||||
\ 'sxhkdrc': '*.sxhkdrc,sxhkdrc',
|
\ 'sxhkdrc': '*.sxhkdrc,sxhkdrc',
|
||||||
\ 'systemd': '*.automount,*.mount,*.path,*.service,*.socket,*.swap,*.target,*.timer',
|
\ 'systemd': '*.automount,*.mount,*.path,*.service,*.socket,*.swap,*.target,*.timer',
|
||||||
\ 'tablegen': '*.td',
|
\ 'tablegen': '*.td',
|
||||||
|
\ 'tads': '*.t',
|
||||||
\ 'terraform': '*.hcl,*.nomad,*.tf,*.tfvars,*.workflow',
|
\ 'terraform': '*.hcl,*.nomad,*.tf,*.tfvars,*.workflow',
|
||||||
\ 'textile': '*.textile',
|
\ 'textile': '*.textile',
|
||||||
\ 'thrift': '*.thrift',
|
\ 'thrift': '*.thrift',
|
||||||
@@ -197,6 +202,8 @@ let s:globs = {
|
|||||||
\ 'toml': '*.toml,Cargo.lock,Gopkg.lock,poetry.lock,Pipfile',
|
\ 'toml': '*.toml,Cargo.lock,Gopkg.lock,poetry.lock,Pipfile',
|
||||||
\ 'tptp': '*.p,*.tptp,*.ax',
|
\ 'tptp': '*.p,*.tptp,*.ax',
|
||||||
\ 'trasys': '*.inp',
|
\ 'trasys': '*.inp',
|
||||||
|
\ 'tt2': '*.tt2',
|
||||||
|
\ 'tt2html': '*.tt2',
|
||||||
\ 'typescript': '*.ts',
|
\ 'typescript': '*.ts',
|
||||||
\ 'typescriptreact': '*.tsx',
|
\ 'typescriptreact': '*.tsx',
|
||||||
\ 'unison': '*.u,*.uu',
|
\ 'unison': '*.u,*.uu',
|
||||||
@@ -211,6 +218,7 @@ let s:globs = {
|
|||||||
\ 'xdc': '*.xdc',
|
\ 'xdc': '*.xdc',
|
||||||
\ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mm,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.ps1xml,*.psc1,*.pt,*.rdf,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config',
|
\ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mm,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.ps1xml,*.psc1,*.pt,*.rdf,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config',
|
||||||
\ 'xml.twig': '*.xml.twig',
|
\ 'xml.twig': '*.xml.twig',
|
||||||
|
\ 'xs': '*.xs',
|
||||||
\ 'xsl': '*.xslt,*.xsl',
|
\ 'xsl': '*.xslt,*.xsl',
|
||||||
\ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,glide.lock,yarn.lock,fish_history,fish_read_history',
|
\ 'yaml': '*.yml,*.mir,*.reek,*.rviz,*.sublime-syntax,*.syntax,*.yaml,*.yaml-tmlanguage,*.yaml.sed,*.yml.mysql,glide.lock,yarn.lock,fish_history,fish_read_history',
|
||||||
\ 'yaml.ansible': 'playbook.y{a,}ml,site.y{a,}ml,main.y{a,}ml,local.y{a,}ml,requirements.y{a,}ml,tasks.*.y{a,}ml,roles.*.y{a,}ml,handlers.*.y{a,}ml',
|
\ 'yaml.ansible': 'playbook.y{a,}ml,site.y{a,}ml,main.y{a,}ml,local.y{a,}ml,requirements.y{a,}ml,tasks.*.y{a,}ml,roles.*.y{a,}ml,handlers.*.y{a,}ml',
|
||||||
|
|||||||
@@ -75,13 +75,15 @@ endfunc
|
|||||||
" When using this, the entry should probably be further down below with the
|
" When using this, the entry should probably be further down below with the
|
||||||
" other StarSetf() calls.
|
" other StarSetf() calls.
|
||||||
func! s:StarSetf(ft)
|
func! s:StarSetf(ft)
|
||||||
if expand("<amatch>") !~ g:ft_ignore_pat
|
if expand("<amatch>") !~ g:ft_ignore_pat && &filetype !~# '\<'.a:ft.'\>'
|
||||||
exe 'setf ' . a:ft
|
let &filetype = a:ft
|
||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
augroup filetypedetect
|
augroup filetypedetect
|
||||||
|
|
||||||
|
au! filetypedetect BufRead,BufNewFile,StdinReadPost *
|
||||||
|
|
||||||
" filetypes
|
" filetypes
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, '8th')
|
if !has_key(s:disabled_packages, '8th')
|
||||||
@@ -92,6 +94,10 @@ if !has_key(s:disabled_packages, 'haproxy')
|
|||||||
au! BufRead,BufNewFile *.cfg
|
au! BufRead,BufNewFile *.cfg
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'a2ps')
|
||||||
|
au! BufRead,BufNewFile */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'a65')
|
if !has_key(s:disabled_packages, 'a65')
|
||||||
au! BufRead,BufNewFile *.a65
|
au! BufRead,BufNewFile *.a65
|
||||||
endif
|
endif
|
||||||
@@ -132,6 +138,10 @@ if !has_key(s:disabled_packages, 'aidl')
|
|||||||
au! BufRead,BufNewFile *.aidl
|
au! BufRead,BufNewFile *.aidl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'alsaconf')
|
||||||
|
au! BufRead,BufNewFile .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'aml')
|
if !has_key(s:disabled_packages, 'aml')
|
||||||
au! BufRead,BufNewFile *.aml
|
au! BufRead,BufNewFile *.aml
|
||||||
endif
|
endif
|
||||||
@@ -144,12 +154,28 @@ if !has_key(s:disabled_packages, 'xml')
|
|||||||
au! BufRead,BufNewFile *.csproj,*.ui,*.wsdl,*.wsf,*.xlf,*.xliff,*.xmi,*.xsd,*.xul
|
au! BufRead,BufNewFile *.csproj,*.ui,*.wsdl,*.wsf,*.xlf,*.xliff,*.xmi,*.xsd,*.xul
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'ant')
|
||||||
|
au! BufRead,BufNewFile build.xml
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'apache')
|
||||||
|
au! BufRead,BufNewFile .htaccess,*/etc/httpd/*.conf,*/etc/apache2/sites-*/*.com,access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*,*/etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf*
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'applescript')
|
if !has_key(s:disabled_packages, 'applescript')
|
||||||
au! BufRead,BufNewFile *.scpt
|
au! BufRead,BufNewFile *.scpt
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'aptconf')
|
||||||
|
au! BufRead,BufNewFile apt.conf,*/.aptitude/config
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'arch')
|
||||||
|
au! BufRead,BufNewFile .arch-inventory,=tagging-method
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'c/c++')
|
if !has_key(s:disabled_packages, 'c/c++')
|
||||||
au! BufRead,BufNewFile *.cpp,*.c++,*.cc,*.cxx,*.hh,*.hpp,*.hxx,*.inl,*.ipp,*.tcc,*.tpp,*.moc,*.tlh,*.qc
|
au! BufRead,BufNewFile *.cpp,*.c++,*.cc,*.cxx,*.hh,*.hpp,*.hxx,*.inl,*.ipp,*.tcc,*.tpp,*.moc,*.tlh,*.qc,*enlightenment/*.cfg
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'arduino')
|
if !has_key(s:disabled_packages, 'arduino')
|
||||||
@@ -172,6 +198,10 @@ if !has_key(s:disabled_packages, 'elf')
|
|||||||
au! BufRead,BufNewFile *.am
|
au! BufRead,BufNewFile *.am
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'automake')
|
||||||
|
au! BufRead,BufNewFile GNUmakefile.am
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'asn')
|
if !has_key(s:disabled_packages, 'asn')
|
||||||
au! BufRead,BufNewFile *.asn,*.asn1
|
au! BufRead,BufNewFile *.asn,*.asn1
|
||||||
endif
|
endif
|
||||||
@@ -197,7 +227,7 @@ if !has_key(s:disabled_packages, 'clojure')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'cmake')
|
if !has_key(s:disabled_packages, 'cmake')
|
||||||
au! BufRead,BufNewFile *.cmake,*.cmake.in
|
au! BufRead,BufNewFile *.cmake,*.cmake.in,CMakeLists.txt
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'cucumber')
|
if !has_key(s:disabled_packages, 'cucumber')
|
||||||
@@ -213,7 +243,7 @@ if !has_key(s:disabled_packages, 'dlang')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'dockerfile')
|
if !has_key(s:disabled_packages, 'dockerfile')
|
||||||
au! BufRead,BufNewFile *.Dockerfile
|
au! BufRead,BufNewFile *.Dockerfile,Dockerfile
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'elm')
|
if !has_key(s:disabled_packages, 'elm')
|
||||||
@@ -236,6 +266,10 @@ if !has_key(s:disabled_packages, 'fsharp')
|
|||||||
au! BufRead,BufNewFile *.fs
|
au! BufRead,BufNewFile *.fs
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'git')
|
||||||
|
au! BufRead,BufNewFile .gitconfig,.gitmodules,*.git/config,*/.config/git/config,*.git/modules/*/config,git-rebase-todo
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'gnuplot')
|
if !has_key(s:disabled_packages, 'gnuplot')
|
||||||
au! BufRead,BufNewFile *.gp,*.gpi
|
au! BufRead,BufNewFile *.gp,*.gpi
|
||||||
endif
|
endif
|
||||||
@@ -256,6 +290,10 @@ if !has_key(s:disabled_packages, 'groovy')
|
|||||||
au! BufRead,BufNewFile *.groovy,*.gradle
|
au! BufRead,BufNewFile *.groovy,*.gradle
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'grub')
|
||||||
|
au! BufRead,BufNewFile */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'haml')
|
if !has_key(s:disabled_packages, 'haml')
|
||||||
au! BufRead,BufNewFile *.haml
|
au! BufRead,BufNewFile *.haml
|
||||||
endif
|
endif
|
||||||
@@ -273,7 +311,7 @@ if !has_key(s:disabled_packages, 'html5')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'json')
|
if !has_key(s:disabled_packages, 'json')
|
||||||
au! BufRead,BufNewFile *.json,*.ice,*.webmanifest,*.yy,*.jsonp
|
au! BufRead,BufNewFile *.json,*.ice,*.webmanifest,*.yy,*.jsonp,Pipfile.lock
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'kotlin')
|
if !has_key(s:disabled_packages, 'kotlin')
|
||||||
@@ -304,8 +342,12 @@ if !has_key(s:disabled_packages, 'markdown')
|
|||||||
au! BufRead,BufNewFile *.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn
|
au! BufRead,BufNewFile *.md,*.markdown,*.mdown,*.mdwn,*.mkd,*.mkdn
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'meson')
|
||||||
|
au! BufRead,BufNewFile meson.build,meson_options.txt
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'ocaml')
|
if !has_key(s:disabled_packages, 'ocaml')
|
||||||
au! BufRead,BufNewFile *.ml,*.mli,*.mll,*.mly
|
au! BufRead,BufNewFile *.ml,*.mli,*.mll,*.mly,.ocamlinit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'opencl')
|
if !has_key(s:disabled_packages, 'opencl')
|
||||||
@@ -313,7 +355,7 @@ if !has_key(s:disabled_packages, 'opencl')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'perl')
|
if !has_key(s:disabled_packages, 'perl')
|
||||||
au! BufRead,BufNewFile *.al,*.plx,*.psgi,*.t
|
au! BufRead,BufNewFile *.al,*.plx,*.psgi,*.t,*.pod,*.mason,*.mhtml,*.comp,*.xs
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'php')
|
if !has_key(s:disabled_packages, 'php')
|
||||||
@@ -325,7 +367,7 @@ if !has_key(s:disabled_packages, 'protobuf')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'python')
|
if !has_key(s:disabled_packages, 'python')
|
||||||
au! BufRead,BufNewFile *.py,*.pyi,*.pyw,*.spec
|
au! BufRead,BufNewFile *.py,*.pyi,*.pyw,*.spec,SConstruct
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'r-lang')
|
if !has_key(s:disabled_packages, 'r-lang')
|
||||||
@@ -349,7 +391,7 @@ if !has_key(s:disabled_packages, 'rst')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'ruby')
|
if !has_key(s:disabled_packages, 'ruby')
|
||||||
au! BufRead,BufNewFile *.rb,*.builder,*.gemspec,*.rake,*.rbw,*.ru,*.spec,*.rxml,*.rjs,*.rant,*.erb,*.rhtml
|
au! BufRead,BufNewFile *.rb,*.builder,*.gemspec,*.rake,*.rbw,*.ru,*.spec,*.rxml,*.rjs,*.rant,.irbrc,Gemfile,Rakefile,Rantfile,*.erb,*.rhtml
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'rust')
|
if !has_key(s:disabled_packages, 'rust')
|
||||||
@@ -369,7 +411,7 @@ if !has_key(s:disabled_packages, 'scss')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'sh')
|
if !has_key(s:disabled_packages, 'sh')
|
||||||
au! BufRead,BufNewFile *.zsh
|
au! BufRead,BufNewFile *.zsh,.zshrc,.zshenv,.zlogin,.zprofile,.zlogout
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'smt2')
|
if !has_key(s:disabled_packages, 'smt2')
|
||||||
@@ -388,6 +430,10 @@ if !has_key(s:disabled_packages, 'terraform')
|
|||||||
au! BufRead,BufNewFile *.tf
|
au! BufRead,BufNewFile *.tf
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'toml')
|
||||||
|
au! BufRead,BufNewFile Pipfile
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'twig')
|
if !has_key(s:disabled_packages, 'twig')
|
||||||
au! BufRead,BufNewFile *.twig
|
au! BufRead,BufNewFile *.twig
|
||||||
endif
|
endif
|
||||||
@@ -420,12 +466,24 @@ if !has_key(s:disabled_packages, 'yaml')
|
|||||||
au! BufRead,BufNewFile *.yml,*.yaml
|
au! BufRead,BufNewFile *.yml,*.yaml
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'help')
|
||||||
|
au! BufRead,BufNewFile $VIMRUNTIME/doc/*.txt
|
||||||
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'visual-basic')
|
if !has_key(s:disabled_packages, 'visual-basic')
|
||||||
au! BufRead,BufNewFile *.vba,*.vbs,*.dsm,*.ctl,*.sba
|
au! BufRead,BufNewFile *.vba,*.vbs,*.dsm,*.ctl,*.sba
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'dosini')
|
if !has_key(s:disabled_packages, 'dosini')
|
||||||
au! BufRead,BufNewFile *.ini,*.properties
|
au! BufRead,BufNewFile *.ini,*.properties,.editorconfig,.npmrc,*/etc/pacman.conf,php.ini-*,*/etc/yum.conf,*/etc/yum.repos.d/*
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'bzl')
|
||||||
|
au! BufRead,BufNewFile *.bzl,BUILD,WORKSPACE
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'tads')
|
||||||
|
au! BufRead,BufNewFile *.t
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, '8th')
|
if !has_key(s:disabled_packages, '8th')
|
||||||
@@ -1071,12 +1129,12 @@ endif
|
|||||||
|
|
||||||
if !has_key(s:disabled_packages, 'html5')
|
if !has_key(s:disabled_packages, 'html5')
|
||||||
au BufNewFile,BufRead *.htm call s:Setf('html')
|
au BufNewFile,BufRead *.htm call s:Setf('html')
|
||||||
au BufNewFile,BufRead *.html call s:Setf('html')
|
|
||||||
au BufNewFile,BufRead *.html.hl call s:Setf('html')
|
au BufNewFile,BufRead *.html.hl call s:Setf('html')
|
||||||
au BufNewFile,BufRead *.inc call s:Setf('html')
|
au BufNewFile,BufRead *.inc call s:Setf('html')
|
||||||
au BufNewFile,BufRead *.st call s:Setf('html')
|
au BufNewFile,BufRead *.st call s:Setf('html')
|
||||||
au BufNewFile,BufRead *.xht call s:Setf('html')
|
au BufNewFile,BufRead *.xht call s:Setf('html')
|
||||||
au BufNewFile,BufRead *.xhtml call s:Setf('html')
|
au BufNewFile,BufRead *.xhtml call s:Setf('html')
|
||||||
|
au! BufNewFile,BufRead *.html call polyglot#DetectHtmlFiletype()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'i3')
|
if !has_key(s:disabled_packages, 'i3')
|
||||||
@@ -1365,15 +1423,21 @@ if !has_key(s:disabled_packages, 'perl')
|
|||||||
au BufNewFile,BufRead *.fcgi call s:Setf('perl')
|
au BufNewFile,BufRead *.fcgi call s:Setf('perl')
|
||||||
au BufNewFile,BufRead *.perl call s:Setf('perl')
|
au BufNewFile,BufRead *.perl call s:Setf('perl')
|
||||||
au BufNewFile,BufRead *.ph call s:Setf('perl')
|
au BufNewFile,BufRead *.ph call s:Setf('perl')
|
||||||
au BufNewFile,BufRead *.pl call s:Setf('perl')
|
|
||||||
au BufNewFile,BufRead *.plx call s:Setf('perl')
|
au BufNewFile,BufRead *.plx call s:Setf('perl')
|
||||||
au BufNewFile,BufRead *.pm call s:Setf('perl')
|
|
||||||
au BufNewFile,BufRead *.psgi call s:Setf('perl')
|
au BufNewFile,BufRead *.psgi call s:Setf('perl')
|
||||||
au BufNewFile,BufRead *.t call s:Setf('perl')
|
|
||||||
au BufNewFile,BufRead Makefile.PL call s:Setf('perl')
|
au BufNewFile,BufRead Makefile.PL call s:Setf('perl')
|
||||||
au BufNewFile,BufRead Rexfile call s:Setf('perl')
|
au BufNewFile,BufRead Rexfile call s:Setf('perl')
|
||||||
au BufNewFile,BufRead ack call s:Setf('perl')
|
au BufNewFile,BufRead ack call s:Setf('perl')
|
||||||
au BufNewFile,BufRead cpanfile call s:Setf('perl')
|
au BufNewFile,BufRead cpanfile call s:Setf('perl')
|
||||||
|
au BufNewFile,BufRead *.pod call s:Setf('pod')
|
||||||
|
au BufNewFile,BufRead *.comp call s:Setf('mason')
|
||||||
|
au BufNewFile,BufRead *.mason call s:Setf('mason')
|
||||||
|
au BufNewFile,BufRead *.mhtml call s:Setf('mason')
|
||||||
|
au BufNewFile,BufRead *.xs call s:Setf('xs')
|
||||||
|
au! BufNewFile,BufRead *.pl call polyglot#DetectPlFiletype()
|
||||||
|
au! BufNewFile,BufRead *.pm call polyglot#DetectPmFiletype()
|
||||||
|
au! BufNewFile,BufRead *.t call polyglot#DetectTFiletype()
|
||||||
|
au! BufNewFile,BufRead *.tt2 call polyglot#DetectTt2Filetype()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'pgsql')
|
if !has_key(s:disabled_packages, 'pgsql')
|
||||||
@@ -1517,17 +1581,17 @@ if !has_key(s:disabled_packages, 'raku')
|
|||||||
au BufNewFile,BufRead *.p6 call s:Setf('raku')
|
au BufNewFile,BufRead *.p6 call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.p6l call s:Setf('raku')
|
au BufNewFile,BufRead *.p6l call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.p6m call s:Setf('raku')
|
au BufNewFile,BufRead *.p6m call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.pl call s:Setf('raku')
|
|
||||||
au BufNewFile,BufRead *.pl6 call s:Setf('raku')
|
au BufNewFile,BufRead *.pl6 call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.pm call s:Setf('raku')
|
|
||||||
au BufNewFile,BufRead *.pm6 call s:Setf('raku')
|
au BufNewFile,BufRead *.pm6 call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.pod6 call s:Setf('raku')
|
au BufNewFile,BufRead *.pod6 call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.raku call s:Setf('raku')
|
au BufNewFile,BufRead *.raku call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.rakudoc call s:Setf('raku')
|
au BufNewFile,BufRead *.rakudoc call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.rakumod call s:Setf('raku')
|
au BufNewFile,BufRead *.rakumod call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.rakutest call s:Setf('raku')
|
au BufNewFile,BufRead *.rakutest call s:Setf('raku')
|
||||||
au BufNewFile,BufRead *.t call s:Setf('raku')
|
|
||||||
au BufNewFile,BufRead *.t6 call s:Setf('raku')
|
au BufNewFile,BufRead *.t6 call s:Setf('raku')
|
||||||
|
au! BufNewFile,BufRead *.pl call polyglot#DetectPlFiletype()
|
||||||
|
au! BufNewFile,BufRead *.pm call polyglot#DetectPmFiletype()
|
||||||
|
au! BufNewFile,BufRead *.t call polyglot#DetectTFiletype()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'raml')
|
if !has_key(s:disabled_packages, 'raml')
|
||||||
@@ -1616,7 +1680,7 @@ if !has_key(s:disabled_packages, 'ruby')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'rspec')
|
if !has_key(s:disabled_packages, 'rspec')
|
||||||
au BufNewFile,BufRead *_spec.rb if !did_filetype() | set ft=ruby syntax=rspec | endif
|
au BufNewFile,BufRead *_spec.rb set ft=ruby syntax=rspec
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !has_key(s:disabled_packages, 'brewfile')
|
if !has_key(s:disabled_packages, 'brewfile')
|
||||||
@@ -1918,12 +1982,41 @@ if !has_key(s:disabled_packages, 'odin')
|
|||||||
au BufNewFile,BufRead *.odin call s:Setf('odin')
|
au BufNewFile,BufRead *.odin call s:Setf('odin')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'bzl')
|
||||||
|
au BufNewFile,BufRead *.bzl call s:Setf('bzl')
|
||||||
|
au BufNewFile,BufRead BUCK call s:Setf('bzl')
|
||||||
|
au BufNewFile,BufRead BUILD call s:Setf('bzl')
|
||||||
|
au BufNewFile,BufRead BUILD.bazel call s:Setf('bzl')
|
||||||
|
au BufNewFile,BufRead Tiltfile call s:Setf('bzl')
|
||||||
|
au BufNewFile,BufRead WORKSPACE call s:Setf('bzl')
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'prolog')
|
||||||
|
au BufNewFile,BufRead *.pro call s:Setf('prolog')
|
||||||
|
au BufNewFile,BufRead *.prolog call s:Setf('prolog')
|
||||||
|
au BufNewFile,BufRead *.yap call s:Setf('prolog')
|
||||||
|
au! BufNewFile,BufRead *.pl call polyglot#DetectPlFiletype()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !has_key(s:disabled_packages, 'tads')
|
||||||
|
au! BufNewFile,BufRead *.t call polyglot#DetectTFiletype()
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
" end filetypes
|
" end filetypes
|
||||||
|
|
||||||
au BufNewFile,BufRead,StdinReadPost *
|
func! s:PolyglotFallback()
|
||||||
\ if !did_filetype() && expand("<afile>") !~ g:ft_ignore_pat
|
if expand("<afile>") !~ g:ft_ignore_pat
|
||||||
\ | call polyglot#Heuristics() | endif
|
if getline(1) =~# "^#!"
|
||||||
|
call polyglot#Shebang()
|
||||||
|
endif
|
||||||
|
if &filetype == ''
|
||||||
|
runtime! scripts.vim
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
au BufNewFile,BufRead,StdinReadPost * call s:PolyglotFallback()
|
||||||
|
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
@@ -2123,7 +2216,7 @@ au VimEnter * call s:verify()
|
|||||||
func! s:observe_filetype()
|
func! s:observe_filetype()
|
||||||
augroup polyglot-observer
|
augroup polyglot-observer
|
||||||
au! CursorHold,CursorHoldI <buffer>
|
au! CursorHold,CursorHoldI <buffer>
|
||||||
\ if polyglot#Heuristics() | au! polyglot-observer CursorHold,CursorHoldI | endif
|
\ if polyglot#Shebang() | au! polyglot-observer CursorHold,CursorHoldI | endif
|
||||||
augroup END
|
augroup END
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
|||||||
98
ftplugin/bzl.vim
Normal file
98
ftplugin/bzl.vim
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||||
|
|
||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: Bazel (http://bazel.io)
|
||||||
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||||
|
" Last Change: 2015 Aug 11
|
||||||
|
|
||||||
|
""
|
||||||
|
" @section Introduction, intro
|
||||||
|
" Core settings for the bzl filetype, used for BUILD and *.bzl files for the
|
||||||
|
" Bazel build system (http://bazel.io/).
|
||||||
|
|
||||||
|
if exists('b:did_ftplugin')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" Vim 7.4.051 has opinionated settings in ftplugin/python.vim that try to force
|
||||||
|
" PEP8 conventions on every python file, but these conflict with Google's
|
||||||
|
" indentation guidelines. As a workaround, we explicitly source the system
|
||||||
|
" ftplugin, but save indentation settings beforehand and restore them after.
|
||||||
|
let s:save_expandtab = &l:expandtab
|
||||||
|
let s:save_shiftwidth = &l:shiftwidth
|
||||||
|
let s:save_softtabstop = &l:softtabstop
|
||||||
|
let s:save_tabstop = &l:tabstop
|
||||||
|
|
||||||
|
" NOTE: Vim versions before 7.3.511 had a ftplugin/python.vim that was broken
|
||||||
|
" for compatible mode.
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Load base python ftplugin (also defines b:did_ftplugin).
|
||||||
|
source $VIMRUNTIME/ftplugin/python.vim
|
||||||
|
|
||||||
|
" NOTE: Vim versions before 7.4.104 and later set this in ftplugin/python.vim.
|
||||||
|
setlocal comments=b:#,fb:-
|
||||||
|
|
||||||
|
" Restore pre-existing indentation settings.
|
||||||
|
let &l:expandtab = s:save_expandtab
|
||||||
|
let &l:shiftwidth = s:save_shiftwidth
|
||||||
|
let &l:softtabstop = s:save_softtabstop
|
||||||
|
let &l:tabstop = s:save_tabstop
|
||||||
|
|
||||||
|
setlocal formatoptions-=t
|
||||||
|
|
||||||
|
" Make gf work with imports in BUILD files.
|
||||||
|
setlocal includeexpr=substitute(v:fname,'//','','')
|
||||||
|
|
||||||
|
" Enable syntax-based folding, if specified.
|
||||||
|
if get(g:, 'ft_bzl_fold', 0)
|
||||||
|
setlocal foldmethod=syntax
|
||||||
|
setlocal foldtext=BzlFoldText()
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('*BzlFoldText')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function BzlFoldText() abort
|
||||||
|
let l:start_num = nextnonblank(v:foldstart)
|
||||||
|
let l:end_num = prevnonblank(v:foldend)
|
||||||
|
|
||||||
|
if l:end_num <= l:start_num + 1
|
||||||
|
" If the fold is empty, don't print anything for the contents.
|
||||||
|
let l:content = ''
|
||||||
|
else
|
||||||
|
" Otherwise look for something matching the content regex.
|
||||||
|
" And if nothing matches, print an ellipsis.
|
||||||
|
let l:content = '...'
|
||||||
|
for l:line in getline(l:start_num + 1, l:end_num - 1)
|
||||||
|
let l:content_match = matchstr(l:line, '\m\C^\s*name = \zs.*\ze,$')
|
||||||
|
if !empty(l:content_match)
|
||||||
|
let l:content = l:content_match
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Enclose content with start and end
|
||||||
|
let l:start_text = getline(l:start_num)
|
||||||
|
let l:end_text = substitute(getline(l:end_num), '^\s*', '', '')
|
||||||
|
let l:text = l:start_text . ' ' . l:content . ' ' . l:end_text
|
||||||
|
|
||||||
|
" Compute the available width for the displayed text.
|
||||||
|
let l:width = winwidth(0) - &foldcolumn - (&number ? &numberwidth : 0)
|
||||||
|
let l:lines_folded = ' ' . string(1 + v:foldend - v:foldstart) . ' lines'
|
||||||
|
|
||||||
|
" Expand tabs, truncate, pad, and concatenate
|
||||||
|
let l:text = substitute(l:text, '\t', repeat(' ', &tabstop), 'g')
|
||||||
|
let l:text = strpart(l:text, 0, l:width - len(l:lines_folded))
|
||||||
|
let l:padding = repeat(' ', l:width - len(l:lines_folded) - len(l:text))
|
||||||
|
return l:text . l:padding . l:lines_folded
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
||||||
|
|
||||||
|
endif
|
||||||
24
ftplugin/prolog.vim
Normal file
24
ftplugin/prolog.vim
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||||
|
|
||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: Prolog
|
||||||
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
|
" Latest Revision: 2008-07-09
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||||
|
|
||||||
|
setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
|
||||||
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -115,3 +115,70 @@ rules:
|
|||||||
filetype: vb
|
filetype: vb
|
||||||
ignore_case: true
|
ignore_case: true
|
||||||
- filetype: basic
|
- filetype: basic
|
||||||
|
---
|
||||||
|
extensions: [pm]
|
||||||
|
rules:
|
||||||
|
- lines: 1
|
||||||
|
rules:
|
||||||
|
- pattern: 'XPM2'
|
||||||
|
filetype: xpm2
|
||||||
|
- pattern: 'XPM'
|
||||||
|
filetype: xpm
|
||||||
|
- lines: 50
|
||||||
|
rules:
|
||||||
|
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||||
|
filetype: raku
|
||||||
|
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||||
|
filetype: perl
|
||||||
|
- override: 'g:filetype_pm'
|
||||||
|
- filetype: perl
|
||||||
|
---
|
||||||
|
extensions: [pl]
|
||||||
|
rules:
|
||||||
|
- lines: 1
|
||||||
|
or:
|
||||||
|
- pattern: '^[^#]*:-'
|
||||||
|
- pattern: '^\s*(?:%|/\*)'
|
||||||
|
- pattern: '\.\s*$'
|
||||||
|
filetype: prolog
|
||||||
|
- lines: 50
|
||||||
|
rules:
|
||||||
|
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||||
|
filetype: raku
|
||||||
|
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||||
|
filetype: perl
|
||||||
|
- override: 'g:filetype_pl'
|
||||||
|
- filetype: perl
|
||||||
|
---
|
||||||
|
extensions: [t]
|
||||||
|
rules:
|
||||||
|
- lines: 5
|
||||||
|
pattern: '^\.'
|
||||||
|
filetype: nroff
|
||||||
|
- lines: 50
|
||||||
|
rules:
|
||||||
|
- pattern: '^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)'
|
||||||
|
filetype: raku
|
||||||
|
- pattern: '\buse\s+(?:strict\b|v?5\.)'
|
||||||
|
filetype: perl
|
||||||
|
## I haven't found turing syntax for vim...
|
||||||
|
# - pattern: '^\s*%[ \t]+|^\s*var\s+\w+(\s*:\s*\w+)?\s*:=\s*\w+'
|
||||||
|
# filetype: turing
|
||||||
|
- override: 'g:filetype_t'
|
||||||
|
- filetype: perl
|
||||||
|
---
|
||||||
|
extensions: [tt2]
|
||||||
|
rules:
|
||||||
|
- lines: 3
|
||||||
|
pattern: '<(?:!DOCTYPE HTML|[%?]|html)'
|
||||||
|
ignore_case: true
|
||||||
|
filetype: tt2html
|
||||||
|
- filetype: tt2
|
||||||
|
---
|
||||||
|
extensions: [html]
|
||||||
|
rules:
|
||||||
|
- lines: 1
|
||||||
|
pattern: '^(%|<[%&].*>)'
|
||||||
|
filetype: mason
|
||||||
|
- filetype: html
|
||||||
|
|
||||||
|
|||||||
98
indent/bzl.vim
Normal file
98
indent/bzl.vim
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||||
|
|
||||||
|
" Vim indent file
|
||||||
|
" Language: Bazel (http://bazel.io)
|
||||||
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||||
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
|
if exists('b:did_indent')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Load base python indent.
|
||||||
|
if !exists('*GetPythonIndent')
|
||||||
|
runtime! indent/python.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
" Only enable bzl google indent if python google indent is enabled.
|
||||||
|
if !get(g:, 'no_google_python_indent')
|
||||||
|
setlocal indentexpr=GetBzlIndent(v:lnum)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists('*GetBzlIndent')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
|
||||||
|
" Maximum number of lines to look backwards.
|
||||||
|
let s:maxoff = 50
|
||||||
|
|
||||||
|
""
|
||||||
|
" Determine the correct indent level given an {lnum} in the current buffer.
|
||||||
|
function GetBzlIndent(lnum) abort
|
||||||
|
let l:use_recursive_indent = !get(g:, 'no_google_python_recursive_indent')
|
||||||
|
if l:use_recursive_indent
|
||||||
|
" Backup and override indent setting variables.
|
||||||
|
if exists('g:pyindent_nested_paren')
|
||||||
|
let l:pyindent_nested_paren = g:pyindent_nested_paren
|
||||||
|
endif
|
||||||
|
if exists('g:pyindent_open_paren')
|
||||||
|
let l:pyindent_open_paren = g:pyindent_open_paren
|
||||||
|
endif
|
||||||
|
let g:pyindent_nested_paren = 'shiftwidth() * 2'
|
||||||
|
let g:pyindent_open_paren = 'shiftwidth() * 2'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:indent = -1
|
||||||
|
|
||||||
|
" Indent inside parens.
|
||||||
|
" Align with the open paren unless it is at the end of the line.
|
||||||
|
" E.g.
|
||||||
|
" open_paren_not_at_EOL(100,
|
||||||
|
" (200,
|
||||||
|
" 300),
|
||||||
|
" 400)
|
||||||
|
" open_paren_at_EOL(
|
||||||
|
" 100, 200, 300, 400)
|
||||||
|
call cursor(a:lnum, 1)
|
||||||
|
let [l:par_line, l:par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
|
||||||
|
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
|
||||||
|
\ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
|
||||||
|
\ " =~ '\\(Comment\\|String\\)$'")
|
||||||
|
if l:par_line > 0
|
||||||
|
call cursor(l:par_line, 1)
|
||||||
|
if l:par_col != col('$') - 1
|
||||||
|
let l:indent = l:par_col
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Delegate the rest to the original function.
|
||||||
|
if l:indent == -1
|
||||||
|
let l:indent = GetPythonIndent(a:lnum)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if l:use_recursive_indent
|
||||||
|
" Restore global variables.
|
||||||
|
if exists('l:pyindent_nested_paren')
|
||||||
|
let g:pyindent_nested_paren = l:pyindent_nested_paren
|
||||||
|
else
|
||||||
|
unlet g:pyindent_nested_paren
|
||||||
|
endif
|
||||||
|
if exists('l:pyindent_open_paren')
|
||||||
|
let g:pyindent_open_paren = l:pyindent_open_paren
|
||||||
|
else
|
||||||
|
unlet g:pyindent_open_paren
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return l:indent
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
||||||
|
|
||||||
|
endif
|
||||||
71
indent/prolog.vim
Normal file
71
indent/prolog.vim
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||||
|
|
||||||
|
" vim: set sw=4 sts=4:
|
||||||
|
" Maintainer : Gergely Kontra <kgergely@mcl.hu>
|
||||||
|
" Revised on : 2002.02.18. 23:34:05
|
||||||
|
" Language : Prolog
|
||||||
|
" Last change by: Takuya Fujiwara, 2018 Sep 23
|
||||||
|
|
||||||
|
" TODO:
|
||||||
|
" checking with respect to syntax highlighting
|
||||||
|
" ignoring multiline comments
|
||||||
|
" detecting multiline strings
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=GetPrologIndent()
|
||||||
|
setlocal indentkeys-=:,0#
|
||||||
|
setlocal indentkeys+=0%,-,0;,>,0)
|
||||||
|
|
||||||
|
" Only define the function once.
|
||||||
|
"if exists("*GetPrologIndent")
|
||||||
|
" finish
|
||||||
|
"endif
|
||||||
|
|
||||||
|
function! GetPrologIndent()
|
||||||
|
" Find a non-blank line above the current line.
|
||||||
|
let pnum = prevnonblank(v:lnum - 1)
|
||||||
|
" Hit the start of the file, use zero indent.
|
||||||
|
if pnum == 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
let pline = getline(pnum)
|
||||||
|
|
||||||
|
let ind = indent(pnum)
|
||||||
|
" Previous line was comment -> use previous line's indent
|
||||||
|
if pline =~ '^\s*%'
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
" Previous line was the start of block comment -> +1 after '/*' comment
|
||||||
|
if pline =~ '^\s*/\*'
|
||||||
|
return ind + 1
|
||||||
|
endif
|
||||||
|
" Previous line was the end of block comment -> -1 after '*/' comment
|
||||||
|
if pline =~ '^\s*\*/'
|
||||||
|
return ind - 1
|
||||||
|
endif
|
||||||
|
" Check for clause head on previous line
|
||||||
|
if pline =~ '\%(:-\|-->\)\s*\(%.*\)\?$'
|
||||||
|
let ind = ind + shiftwidth()
|
||||||
|
" Check for end of clause on previous line
|
||||||
|
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||||
|
let ind = ind - shiftwidth()
|
||||||
|
endif
|
||||||
|
" Check for opening conditional on previous line
|
||||||
|
if pline =~ '^\s*\([(;]\|->\)'
|
||||||
|
let ind = ind + shiftwidth()
|
||||||
|
endif
|
||||||
|
" Check for closing an unclosed paren, or middle ; or ->
|
||||||
|
if line =~ '^\s*\([);]\|->\)'
|
||||||
|
let ind = ind - shiftwidth()
|
||||||
|
endif
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1175,6 +1175,23 @@ remote: vim-perl/vim-perl
|
|||||||
filetypes:
|
filetypes:
|
||||||
- name: perl
|
- name: perl
|
||||||
linguist: Perl
|
linguist: Perl
|
||||||
|
- name: pod
|
||||||
|
extensions:
|
||||||
|
- pod
|
||||||
|
- name: mason
|
||||||
|
extensions:
|
||||||
|
- mason
|
||||||
|
- mhtml
|
||||||
|
- comp
|
||||||
|
- name: tt2
|
||||||
|
extensions:
|
||||||
|
- tt2
|
||||||
|
- name: tt2html
|
||||||
|
extensions:
|
||||||
|
- tt2
|
||||||
|
- name: xs
|
||||||
|
extensions:
|
||||||
|
- xs
|
||||||
---
|
---
|
||||||
name: pgsql
|
name: pgsql
|
||||||
remote: lifepillar/pgsql.vim
|
remote: lifepillar/pgsql.vim
|
||||||
@@ -1834,3 +1851,25 @@ remote: Tetralux/odin.vim
|
|||||||
filetypes:
|
filetypes:
|
||||||
- name: odin
|
- name: odin
|
||||||
linguist: Odin
|
linguist: Odin
|
||||||
|
---
|
||||||
|
name: bzl
|
||||||
|
remote: vim/vim:runtime
|
||||||
|
glob: '**/bzl.vim'
|
||||||
|
filetypes:
|
||||||
|
- name: bzl
|
||||||
|
linguist: Starlark
|
||||||
|
---
|
||||||
|
name: prolog
|
||||||
|
remote: vim/vim:runtime
|
||||||
|
glob: '**/prolog.vim'
|
||||||
|
filetypes:
|
||||||
|
- name: prolog
|
||||||
|
linguist: Prolog
|
||||||
|
---
|
||||||
|
name: tads
|
||||||
|
remote: vim/vim:runtime
|
||||||
|
glob: '**/tads.vim'
|
||||||
|
filetypes:
|
||||||
|
- name: tads
|
||||||
|
extensions:
|
||||||
|
- t
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ def rule_to_code(rule)
|
|||||||
if rule.has_key?("lines")
|
if rule.has_key?("lines")
|
||||||
if rule["lines"] == 1
|
if rule["lines"] == 1
|
||||||
return <<~EOS
|
return <<~EOS
|
||||||
let line = getline(1)
|
let line = getline(nextnonblank(1))
|
||||||
|
|
||||||
#{indent(rule_to_code(except(rule, "lines")), 0)}
|
#{indent(rule_to_code(except(rule, "lines")), 0)}
|
||||||
EOS
|
EOS
|
||||||
@@ -423,6 +423,7 @@ def generate_ftdetect(packages, heuristics)
|
|||||||
expected_filetypes = expected_filetypes.select { |e| filetype_names.include?(e["name"]) }
|
expected_filetypes = expected_filetypes.select { |e| filetype_names.include?(e["name"]) }
|
||||||
|
|
||||||
native_extensions = Set.new(native_filetypes.flat_map { |f| f["extensions"] || [] })
|
native_extensions = Set.new(native_filetypes.flat_map { |f| f["extensions"] || [] })
|
||||||
|
native_filenames = Set.new(native_filetypes.flat_map { |f| f["filenames"] || [] })
|
||||||
|
|
||||||
for package in packages
|
for package in packages
|
||||||
name = package.fetch("name")
|
name = package.fetch("name")
|
||||||
@@ -435,6 +436,12 @@ def generate_ftdetect(packages, heuristics)
|
|||||||
to_disable << "*." + extension
|
to_disable << "*." + extension
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for filename in filetype["filenames"]
|
||||||
|
if native_filenames.include?(filename)
|
||||||
|
to_disable << filename
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if to_disable.size > 0
|
if to_disable.size > 0
|
||||||
@@ -457,7 +464,7 @@ def generate_ftdetect(packages, heuristics)
|
|||||||
set_command = "call s:Setf('#{name}')"
|
set_command = "call s:Setf('#{name}')"
|
||||||
|
|
||||||
if filetype["syntax"]
|
if filetype["syntax"]
|
||||||
set_command = "if !did_filetype() | set ft=#{name} syntax=#{filetype["syntax"]} | endif"
|
set_command = "set ft=#{name} syntax=#{filetype["syntax"]}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if filetype["custom_set"]
|
if filetype["custom_set"]
|
||||||
@@ -544,11 +551,11 @@ def generate_ftdetect(packages, heuristics)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! polyglot#Heuristics()
|
func! polyglot#Shebang()
|
||||||
" Try to detect filetype from shebang
|
" Try to detect filetype from shebang
|
||||||
let l:filetype = polyglot#Shebang()
|
let ft = polyglot#ShebangFiletype()
|
||||||
if l:filetype != ""
|
if ft != ""
|
||||||
exec "setf " . l:filetype
|
call s:Setf(ft)
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -571,7 +578,7 @@ def generate_ftdetect(packages, heuristics)
|
|||||||
let s:r_envflag = '%(\\S\\+=\\S\\+\\|-[iS]\\|--ignore-environment\\|--split-string\\)'
|
let s:r_envflag = '%(\\S\\+=\\S\\+\\|-[iS]\\|--ignore-environment\\|--split-string\\)'
|
||||||
let s:r_env = '^\\%(\\' . s:r_envflag . '\\s\\+\\)*\\(\\S\\+\\)'
|
let s:r_env = '^\\%(\\' . s:r_envflag . '\\s\\+\\)*\\(\\S\\+\\)'
|
||||||
|
|
||||||
func! polyglot#Shebang()
|
func! polyglot#ShebangFiletype()
|
||||||
let l:line1 = getline(1)
|
let l:line1 = getline(1)
|
||||||
|
|
||||||
if l:line1 !~# "^#!"
|
if l:line1 !~# "^#!"
|
||||||
|
|||||||
@@ -15,6 +15,12 @@ function! TestExtension(filetype, filename, content)
|
|||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" make sure native vim scripts.vim is respected
|
||||||
|
call TestExtension("rib", "renderman", "##RenderMan")
|
||||||
|
|
||||||
|
" make sure case of file does matter when recognizing file
|
||||||
|
call TestExtension("ruby", "scripts/build", "#!/usr/bin/env ruby")
|
||||||
|
|
||||||
call TestExtension("sh", "bash1", "#!/bin/bash")
|
call TestExtension("sh", "bash1", "#!/bin/bash")
|
||||||
call TestExtension("sh", "bash2", "#! /bin/bash")
|
call TestExtension("sh", "bash2", "#! /bin/bash")
|
||||||
call TestExtension("sh", "bash3", "#! /bin/bash2.3")
|
call TestExtension("sh", "bash3", "#! /bin/bash2.3")
|
||||||
@@ -279,3 +285,72 @@ call TestExtension("c", "foo.h", "")
|
|||||||
unlet g:c_syntax_for_h
|
unlet g:c_syntax_for_h
|
||||||
let g:ch_syntax_for_h = 1
|
let g:ch_syntax_for_h = 1
|
||||||
call TestExtension("ch", "foo.h", "")
|
call TestExtension("ch", "foo.h", "")
|
||||||
|
|
||||||
|
" perl
|
||||||
|
call TestExtension("perl", "empty.plx", "")
|
||||||
|
call TestExtension("perl", "empty.al", "")
|
||||||
|
call TestExtension("perl", "empty.psgi", "")
|
||||||
|
call TestExtension("pod", "empty.pod", "")
|
||||||
|
|
||||||
|
" raku
|
||||||
|
call TestExtension("raku", "empty.p6", "")
|
||||||
|
call TestExtension("raku", "empty.pm6", "")
|
||||||
|
call TestExtension("raku", "empty.pl6", "")
|
||||||
|
call TestExtension("raku", "empty.raku", "")
|
||||||
|
call TestExtension("raku", "empty.rakumod", "")
|
||||||
|
call TestExtension("raku", "empty.pod6", "")
|
||||||
|
call TestExtension("raku", "empty.rakudoc", "")
|
||||||
|
call TestExtension("raku", "empty.rakutest", "")
|
||||||
|
call TestExtension("raku", "empty.t6", "")
|
||||||
|
|
||||||
|
|
||||||
|
" .pm extension
|
||||||
|
call TestExtension("perl", "empty.pm", "")
|
||||||
|
call TestExtension("perl", "strict.pm", " use strict hello;")
|
||||||
|
call TestExtension("perl", "use5.pm", " use 5;")
|
||||||
|
call TestExtension("perl", "usev5.pm", " use v5;")
|
||||||
|
call TestExtension("raku", "script.pm", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||||
|
call TestExtension("raku", "class.pm", " class Class {}")
|
||||||
|
call TestExtension("raku", "module.pm", " module foobar")
|
||||||
|
call TestExtension("xpm", "xpm.pm", "/* XPM */")
|
||||||
|
call TestExtension("xpm2", "xpm2.pm", "/* XPM2 */")
|
||||||
|
let g:filetype_pm = "fizfuz"
|
||||||
|
call TestExtension("fizfuz", "fizfuz.pm", "")
|
||||||
|
|
||||||
|
" .pl extension
|
||||||
|
call TestExtension("perl", "empty.pl", "")
|
||||||
|
call TestExtension("prolog", "comment.pl", "% hello world")
|
||||||
|
call TestExtension("prolog", "comment2.pl", "/* hello world */")
|
||||||
|
call TestExtension("prolog", "statement.pl", "happy(vincent). ")
|
||||||
|
call TestExtension("prolog", "statement2.pl", "nearbychk(X,Y) :- Y is X-1.")
|
||||||
|
call TestExtension("perl", "strict.pl", " use strict hello;")
|
||||||
|
call TestExtension("perl", "use5.pl", " use 5;")
|
||||||
|
call TestExtension("perl", "usev5.pl", " use v5;")
|
||||||
|
call TestExtension("raku", "script.pl", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||||
|
call TestExtension("raku", "class.pl", " class Class {}")
|
||||||
|
call TestExtension("raku", "module.pl", " module foobar")
|
||||||
|
let g:filetype_pl = "fizfuz"
|
||||||
|
call TestExtension("fizfuz", "fizfuz.pl", "")
|
||||||
|
|
||||||
|
" .t extension
|
||||||
|
call TestExtension("perl", "empty.t", "")
|
||||||
|
call TestExtension("perl", "strict.t", " use strict hello;")
|
||||||
|
call TestExtension("perl", "use5.t", " use 5;")
|
||||||
|
call TestExtension("perl", "usev5.t", " use v5;")
|
||||||
|
call TestExtension("raku", "script.t", "#!/usr/bin/env perl6\nprint('Hello world')")
|
||||||
|
call TestExtension("raku", "class.t", " class Class {}")
|
||||||
|
call TestExtension("raku", "module.t", " module foobar")
|
||||||
|
call TestExtension("nroff", "module.t", ".nf\n101 Main Street")
|
||||||
|
let g:filetype_t = "fizfuz"
|
||||||
|
call TestExtension("fizfuz", "fizfuz.t", "")
|
||||||
|
|
||||||
|
" .tt2 extension
|
||||||
|
call TestExtension("tt2", "empty.tt2", "")
|
||||||
|
call TestExtension("tt2html", "doctype.tt2", "<!DOCTYPE HTML>")
|
||||||
|
call TestExtension("tt2html", "percent.tt2", "<%filter>")
|
||||||
|
call TestExtension("tt2html", "html.tt2", "<html>")
|
||||||
|
|
||||||
|
" .html extension
|
||||||
|
call TestExtension("html", "empty.html", "")
|
||||||
|
call TestExtension("mason", "mason1.html", "% my $planet = 42;")
|
||||||
|
call TestExtension("mason", "mason2.html", "<%filter></%filter>")
|
||||||
|
|||||||
@@ -154,6 +154,11 @@ call TestFiletype('sexplib')
|
|||||||
call TestFiletype('octave')
|
call TestFiletype('octave')
|
||||||
call TestFiletype('opencl')
|
call TestFiletype('opencl')
|
||||||
call TestFiletype('perl')
|
call TestFiletype('perl')
|
||||||
|
call TestFiletype('pod')
|
||||||
|
call TestFiletype('mason')
|
||||||
|
call TestFiletype('tt2')
|
||||||
|
call TestFiletype('tt2html')
|
||||||
|
call TestFiletype('xs')
|
||||||
call TestFiletype('sql')
|
call TestFiletype('sql')
|
||||||
call TestFiletype('cql')
|
call TestFiletype('cql')
|
||||||
call TestFiletype('php')
|
call TestFiletype('php')
|
||||||
@@ -232,3 +237,6 @@ call TestFiletype('basic')
|
|||||||
call TestFiletype('vb')
|
call TestFiletype('vb')
|
||||||
call TestFiletype('dosini')
|
call TestFiletype('dosini')
|
||||||
call TestFiletype('odin')
|
call TestFiletype('odin')
|
||||||
|
call TestFiletype('bzl')
|
||||||
|
call TestFiletype('prolog')
|
||||||
|
call TestFiletype('tads')
|
||||||
|
|||||||
20
syntax/bzl.vim
Normal file
20
syntax/bzl.vim
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bzl') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: Bazel (http://bazel.io)
|
||||||
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||||
|
" Last Change: 2015 Aug 11
|
||||||
|
|
||||||
|
if exists('b:current_syntax')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
runtime! syntax/python.vim
|
||||||
|
|
||||||
|
let b:current_syntax = 'bzl'
|
||||||
|
|
||||||
|
syn region bzlRule start='^\w\+($' end='^)\n*' transparent fold
|
||||||
|
syn region bzlList start='\[' end='\]' transparent fold
|
||||||
|
|
||||||
|
endif
|
||||||
122
syntax/prolog.vim
Normal file
122
syntax/prolog.vim
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'prolog') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: PROLOG
|
||||||
|
" Maintainer: Anton Kochkov <anton.kochkov@gmail.com>
|
||||||
|
" Last Change: 2019 Aug 29
|
||||||
|
|
||||||
|
" There are two sets of highlighting in here:
|
||||||
|
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
|
||||||
|
" Otherwise you get more highlighting.
|
||||||
|
"
|
||||||
|
" You can also set the "prolog_highlighting_no_keyword" variable. If set,
|
||||||
|
" keywords will not be highlighted.
|
||||||
|
|
||||||
|
" quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Prolog is case sensitive.
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" Very simple highlighting for comments, clause heads and
|
||||||
|
" character codes. It respects prolog strings and atoms.
|
||||||
|
|
||||||
|
syn region prologCComment start=+/\*+ end=+\*/+
|
||||||
|
syn match prologComment +%.*+
|
||||||
|
|
||||||
|
if !exists("prolog_highlighting_no_keyword")
|
||||||
|
syn keyword prologKeyword module meta_predicate multifile dynamic
|
||||||
|
endif
|
||||||
|
syn match prologCharCode +0'\\\=.+
|
||||||
|
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||||
|
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||||
|
syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause
|
||||||
|
|
||||||
|
if !exists("prolog_highlighting_clean")
|
||||||
|
|
||||||
|
" some keywords
|
||||||
|
" some common predicates are also highlighted as keywords
|
||||||
|
" is there a better solution?
|
||||||
|
if !exists("prolog_highlighting_no_keyword")
|
||||||
|
syn keyword prologKeyword abolish current_output peek_code
|
||||||
|
syn keyword prologKeyword append current_predicate put_byte
|
||||||
|
syn keyword prologKeyword arg current_prolog_flag put_char
|
||||||
|
syn keyword prologKeyword asserta fail put_code
|
||||||
|
syn keyword prologKeyword assertz findall read
|
||||||
|
syn keyword prologKeyword at_end_of_stream float read_term
|
||||||
|
syn keyword prologKeyword atom flush_output repeat
|
||||||
|
syn keyword prologKeyword atom_chars functor retract
|
||||||
|
syn keyword prologKeyword atom_codes get_byte set_input
|
||||||
|
syn keyword prologKeyword atom_concat get_char set_output
|
||||||
|
syn keyword prologKeyword atom_length get_code set_prolog_flag
|
||||||
|
syn keyword prologKeyword atomic halt set_stream_position
|
||||||
|
syn keyword prologKeyword bagof integer setof
|
||||||
|
syn keyword prologKeyword call is stream_property
|
||||||
|
syn keyword prologKeyword catch nl sub_atom
|
||||||
|
syn keyword prologKeyword char_code nonvar throw
|
||||||
|
syn keyword prologKeyword char_conversion number true
|
||||||
|
syn keyword prologKeyword clause number_chars unify_with_occurs_check
|
||||||
|
syn keyword prologKeyword close number_codes var
|
||||||
|
syn keyword prologKeyword compound once write
|
||||||
|
syn keyword prologKeyword copy_term op write_canonical
|
||||||
|
syn keyword prologKeyword current_char_conversion open write_term
|
||||||
|
syn keyword prologKeyword current_input peek_byte writeq
|
||||||
|
syn keyword prologKeyword current_op peek_char
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|=\.\.\|<\|>\|="
|
||||||
|
syn match prologAsIs "===\|\\===\|<=\|=>"
|
||||||
|
|
||||||
|
syn match prologNumber "\<\d*\>'\@!"
|
||||||
|
syn match prologNumber "\<0[xX]\x*\>'\@!"
|
||||||
|
syn match prologCommentError "\*/"
|
||||||
|
syn match prologSpecialCharacter ";"
|
||||||
|
syn match prologSpecialCharacter "!"
|
||||||
|
syn match prologSpecialCharacter ":-"
|
||||||
|
syn match prologSpecialCharacter "-->"
|
||||||
|
syn match prologQuestion "?-.*\." contains=prologNumber
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn sync maxlines=50
|
||||||
|
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" Only when an item doesn't have highlighting yet
|
||||||
|
|
||||||
|
" The default highlighting.
|
||||||
|
hi def link prologComment Comment
|
||||||
|
hi def link prologCComment Comment
|
||||||
|
hi def link prologCharCode Special
|
||||||
|
|
||||||
|
if exists ("prolog_highlighting_clean")
|
||||||
|
|
||||||
|
hi def link prologKeyword Statement
|
||||||
|
hi def link prologClauseHead Statement
|
||||||
|
hi def link prologClause Normal
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
hi def link prologKeyword Keyword
|
||||||
|
hi def link prologClauseHead Constant
|
||||||
|
hi def link prologClause Normal
|
||||||
|
hi def link prologQuestion PreProc
|
||||||
|
hi def link prologSpecialCharacter Special
|
||||||
|
hi def link prologNumber Number
|
||||||
|
hi def link prologAsIs Normal
|
||||||
|
hi def link prologCommentError Error
|
||||||
|
hi def link prologAtom String
|
||||||
|
hi def link prologString String
|
||||||
|
hi def link prologOperator Operator
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
let b:current_syntax = "prolog"
|
||||||
|
|
||||||
|
" vim: ts=8
|
||||||
|
|
||||||
|
endif
|
||||||
175
syntax/tads.vim
Normal file
175
syntax/tads.vim
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tads') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: TADS
|
||||||
|
" Maintainer: Amir Karger <karger@post.harvard.edu>
|
||||||
|
" $Date: 2004/06/13 19:28:45 $
|
||||||
|
" $Revision: 1.1 $
|
||||||
|
" Stolen from: Bram Moolenaar's C language file
|
||||||
|
" Newest version at: http://www.hec.utah.edu/~karger/vim/syntax/tads.vim
|
||||||
|
" History info at the bottom of the file
|
||||||
|
|
||||||
|
" TODO lots more keywords
|
||||||
|
" global, self, etc. are special *objects*, not functions. They should
|
||||||
|
" probably be a different color than the special functions
|
||||||
|
" Actually, should cvtstr etc. be functions?! (change tadsFunction)
|
||||||
|
" Make global etc. into Identifiers, since we don't have regular variables?
|
||||||
|
|
||||||
|
" quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" A bunch of useful keywords
|
||||||
|
syn keyword tadsStatement goto break return continue pass
|
||||||
|
syn keyword tadsLabel case default
|
||||||
|
syn keyword tadsConditional if else switch
|
||||||
|
syn keyword tadsRepeat while for do
|
||||||
|
syn keyword tadsStorageClass local compoundWord formatstring specialWords
|
||||||
|
syn keyword tadsBoolean nil true
|
||||||
|
|
||||||
|
" TADS keywords
|
||||||
|
syn keyword tadsKeyword replace modify
|
||||||
|
syn keyword tadsKeyword global self inherited
|
||||||
|
" builtin functions
|
||||||
|
syn keyword tadsKeyword cvtstr cvtnum caps lower upper substr
|
||||||
|
syn keyword tadsKeyword say length
|
||||||
|
syn keyword tadsKeyword setit setscore
|
||||||
|
syn keyword tadsKeyword datatype proptype
|
||||||
|
syn keyword tadsKeyword car cdr
|
||||||
|
syn keyword tadsKeyword defined isclass
|
||||||
|
syn keyword tadsKeyword find firstobj nextobj
|
||||||
|
syn keyword tadsKeyword getarg argcount
|
||||||
|
syn keyword tadsKeyword input yorn askfile
|
||||||
|
syn keyword tadsKeyword rand randomize
|
||||||
|
syn keyword tadsKeyword restart restore quit save undo
|
||||||
|
syn keyword tadsException abort exit exitobj
|
||||||
|
|
||||||
|
syn keyword tadsTodo contained TODO FIXME XXX
|
||||||
|
|
||||||
|
" String and Character constants
|
||||||
|
" Highlight special characters (those which have a backslash) differently
|
||||||
|
syn match tadsSpecial contained "\\."
|
||||||
|
syn region tadsDoubleString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tadsSpecial,tadsEmbedded
|
||||||
|
syn region tadsSingleString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tadsSpecial
|
||||||
|
" Embedded expressions in strings
|
||||||
|
syn region tadsEmbedded contained start="<<" end=">>" contains=tadsKeyword
|
||||||
|
|
||||||
|
" TADS doesn't have \xxx, right?
|
||||||
|
"syn match cSpecial contained "\\[0-7][0-7][0-7]\=\|\\."
|
||||||
|
"syn match cSpecialCharacter "'\\[0-7][0-7]'"
|
||||||
|
"syn match cSpecialCharacter "'\\[0-7][0-7][0-7]'"
|
||||||
|
|
||||||
|
"catch errors caused by wrong parenthesis
|
||||||
|
"syn region cParen transparent start='(' end=')' contains=ALLBUT,cParenError,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel
|
||||||
|
"syn match cParenError ")"
|
||||||
|
"syn match cInParen contained "[{}]"
|
||||||
|
syn region tadsBrace transparent start='{' end='}' contains=ALLBUT,tadsBraceError,tadsIncluded,tadsSpecial,tadsTodo
|
||||||
|
syn match tadsBraceError "}"
|
||||||
|
|
||||||
|
"integer number (TADS has no floating point numbers)
|
||||||
|
syn case ignore
|
||||||
|
syn match tadsNumber "\<[0-9]\+\>"
|
||||||
|
"hex number
|
||||||
|
syn match tadsNumber "\<0x[0-9a-f]\+\>"
|
||||||
|
syn match tadsIdentifier "\<[a-z][a-z0-9_$]*\>"
|
||||||
|
syn case match
|
||||||
|
" flag an octal number with wrong digits
|
||||||
|
syn match tadsOctalError "\<0[0-7]*[89]"
|
||||||
|
|
||||||
|
" Removed complicated c_comment_strings
|
||||||
|
syn region tadsComment start="/\*" end="\*/" contains=tadsTodo
|
||||||
|
syn match tadsComment "//.*" contains=tadsTodo
|
||||||
|
syntax match tadsCommentError "\*/"
|
||||||
|
|
||||||
|
syn region tadsPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tadsComment,tadsString,tadsNumber,tadsCommentError
|
||||||
|
syn region tadsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||||
|
syn match tadsIncluded contained "<[^>]*>"
|
||||||
|
syn match tadsInclude "^\s*#\s*include\>\s*["<]" contains=tadsIncluded
|
||||||
|
syn region tadsDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInBrace,tadsIdentifier
|
||||||
|
|
||||||
|
syn region tadsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInParen,tadsIdentifier
|
||||||
|
|
||||||
|
" Highlight User Labels
|
||||||
|
" TODO labels for gotos?
|
||||||
|
"syn region cMulti transparent start='?' end=':' contains=ALLBUT,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel,cBitField
|
||||||
|
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||||
|
"syn match cUserCont "^\s*\I\i*\s*:$" contains=cUserLabel
|
||||||
|
"syn match cUserCont ";\s*\I\i*\s*:$" contains=cUserLabel
|
||||||
|
"syn match cUserCont "^\s*\I\i*\s*:[^:]" contains=cUserLabel
|
||||||
|
"syn match cUserCont ";\s*\I\i*\s*:[^:]" contains=cUserLabel
|
||||||
|
|
||||||
|
"syn match cUserLabel "\I\i*" contained
|
||||||
|
|
||||||
|
" identifier: class-name [, class-name [...]] [property-list] ;
|
||||||
|
" Don't highlight comment in class def
|
||||||
|
syn match tadsClassDef "\<class\>[^/]*" contains=tadsObjectDef,tadsClass
|
||||||
|
syn match tadsClass contained "\<class\>"
|
||||||
|
syn match tadsObjectDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*[a-zA-Z0-9_$]\+\(\s*,\s*[a-zA-Z][a-zA-Z0-9_$]*\)*\(\s*;\)\="
|
||||||
|
syn keyword tadsFunction contained function
|
||||||
|
syn match tadsFunctionDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*function[^{]*" contains=tadsFunction
|
||||||
|
"syn region tadsObject transparent start = '[a-zA-Z][\i$]\s*:\s*' end=";" contains=tadsBrace,tadsObjectDef
|
||||||
|
|
||||||
|
" How far back do we go to find matching groups
|
||||||
|
if !exists("tads_minlines")
|
||||||
|
let tads_minlines = 15
|
||||||
|
endif
|
||||||
|
exec "syn sync ccomment tadsComment minlines=" . tads_minlines
|
||||||
|
if !exists("tads_sync_dist")
|
||||||
|
let tads_sync_dist = 100
|
||||||
|
endif
|
||||||
|
execute "syn sync maxlines=" . tads_sync_dist
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" Only when an item doesn't have highlighting yet
|
||||||
|
|
||||||
|
" The default methods for highlighting. Can be overridden later
|
||||||
|
hi def link tadsFunctionDef Function
|
||||||
|
hi def link tadsFunction Structure
|
||||||
|
hi def link tadsClass Structure
|
||||||
|
hi def link tadsClassDef Identifier
|
||||||
|
hi def link tadsObjectDef Identifier
|
||||||
|
" no highlight for tadsEmbedded, so it prints as normal text w/in the string
|
||||||
|
|
||||||
|
hi def link tadsOperator Operator
|
||||||
|
hi def link tadsStructure Structure
|
||||||
|
hi def link tadsTodo Todo
|
||||||
|
hi def link tadsLabel Label
|
||||||
|
hi def link tadsConditional Conditional
|
||||||
|
hi def link tadsRepeat Repeat
|
||||||
|
hi def link tadsException Exception
|
||||||
|
hi def link tadsStatement Statement
|
||||||
|
hi def link tadsStorageClass StorageClass
|
||||||
|
hi def link tadsKeyWord Keyword
|
||||||
|
hi def link tadsSpecial SpecialChar
|
||||||
|
hi def link tadsNumber Number
|
||||||
|
hi def link tadsBoolean Boolean
|
||||||
|
hi def link tadsDoubleString tadsString
|
||||||
|
hi def link tadsSingleString tadsString
|
||||||
|
|
||||||
|
hi def link tadsOctalError tadsError
|
||||||
|
hi def link tadsCommentError tadsError
|
||||||
|
hi def link tadsBraceError tadsError
|
||||||
|
hi def link tadsInBrace tadsError
|
||||||
|
hi def link tadsError Error
|
||||||
|
|
||||||
|
hi def link tadsInclude Include
|
||||||
|
hi def link tadsPreProc PreProc
|
||||||
|
hi def link tadsDefine Macro
|
||||||
|
hi def link tadsIncluded tadsString
|
||||||
|
hi def link tadsPreCondit PreCondit
|
||||||
|
|
||||||
|
hi def link tadsString String
|
||||||
|
hi def link tadsComment Comment
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let b:current_syntax = "tads"
|
||||||
|
|
||||||
|
" Changes:
|
||||||
|
" 11/18/99 Added a bunch of TADS functions, tadsException
|
||||||
|
" 10/22/99 Misspelled Moolenaar (sorry!), c_minlines to tads_minlines
|
||||||
|
"
|
||||||
|
" vim: ts=8
|
||||||
|
|
||||||
|
endif
|
||||||
Reference in New Issue
Block a user