mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a4b91124a8 | ||
|
|
46040f3ffd | ||
|
|
48254ec7ad | ||
|
|
cd2fded0e0 |
@@ -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.
|
||||
|
||||
- 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-->191<!--/Package Count--> packages it consists of.
|
||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->193<!--/Package Count--> packages it consists of.
|
||||
- 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.
|
||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||
@@ -78,6 +78,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [automake](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [ave](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [awk](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [basic](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [blade](https://github.com/jwalton512/vim-blade)
|
||||
- [brewfile](https://github.com/bfontaine/Brewfile.vim)
|
||||
- [c/c++](https://github.com/vim-jp/vim-cpp)
|
||||
@@ -224,6 +225,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim)
|
||||
- [vcl](https://github.com/smerrill/vcl-vim-plugin)
|
||||
- [velocity](https://github.com/lepture/vim-velocity)
|
||||
- [visual-basic](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [vmasm](https://github.com/vim/vim/tree/master/runtime)
|
||||
- [vue](https://github.com/posva/vim-vue)
|
||||
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax)
|
||||
|
||||
@@ -154,6 +154,25 @@ func! polyglot#DetectAspFiletype()
|
||||
setf aspvbs | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectHFiletype()
|
||||
for lnum in range(1, min([line("$"), 200]))
|
||||
let line = getline(lnum)
|
||||
if line =~# '^\s*\(@\(interface\|class\|protocol\|property\|end\|synchronised\|selector\|implementation\)\(\<\|\>\)\|#import\s\+.\+\.h[">]\)'
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf objc | return
|
||||
endif
|
||||
setf objcpp | return
|
||||
endif
|
||||
endfor
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf c | return
|
||||
endif
|
||||
if exists("g:ch_syntax_for_h")
|
||||
setf ch | return
|
||||
endif
|
||||
setf cpp | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectMFiletype()
|
||||
let saw_comment = 0
|
||||
for lnum in range(1, min([line("$"), 100]))
|
||||
@@ -256,6 +275,16 @@ func! polyglot#DetectLidrFiletype()
|
||||
setf lidris2 | return
|
||||
endfunc
|
||||
|
||||
func! polyglot#DetectBasFiletype()
|
||||
for lnum in range(1, min([line("$"), 5]))
|
||||
let line = getline(lnum)
|
||||
if line =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
|
||||
setf vb | return
|
||||
endif
|
||||
endfor
|
||||
setf basic | return
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -10,14 +10,14 @@ let s:globs = {
|
||||
\ 'abc': '*.abc',
|
||||
\ 'abel': '*.abl',
|
||||
\ 'acedb': '*.wrm',
|
||||
\ 'ada': '*.adb,*.ads,*.ada,*.gpr',
|
||||
\ 'ada': '*.adb,*.ads,*.ada,*.adc,*.gpr,*.ada_m',
|
||||
\ 'ahdl': '*.tdf',
|
||||
\ 'aidl': '*.aidl',
|
||||
\ 'alsaconf': '',
|
||||
\ 'aml': '*.aml',
|
||||
\ 'ampl': '*.run',
|
||||
\ 'ant': 'build.xml',
|
||||
\ 'apache': '',
|
||||
\ 'apache': 'access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf*',
|
||||
\ 'apiblueprint': '*.apib',
|
||||
\ 'applescript': '*.applescript,*.scpt',
|
||||
\ 'aptconf': 'apt.conf',
|
||||
@@ -34,16 +34,17 @@ let s:globs = {
|
||||
\ 'autoit': '*.au3',
|
||||
\ 'automake': '[Mm]akefile.am,GNUmakefile.am',
|
||||
\ 'ave': '*.ave',
|
||||
\ 'awk': '*.awk',
|
||||
\ 'awk': '*.awk,*.gawk',
|
||||
\ 'basic': '*.basic',
|
||||
\ 'blade': '*.blade,*.blade.php',
|
||||
\ 'brewfile': 'Brewfile',
|
||||
\ 'c': '*.c,*.cats,*.h,*.idc',
|
||||
\ 'c': '*.c,*.cats,*.h,*.idc,*.qc',
|
||||
\ 'caddyfile': 'Caddyfile',
|
||||
\ 'carp': '*.carp',
|
||||
\ 'clojure': '*.clj,*.boot,*.cl2,*.cljc,*.cljs,*.cljs.hl,*.cljscm,*.cljx,*.hic,*.edn,riemann.config,build.boot,profile.boot',
|
||||
\ 'cmake': '*.cmake,*.cmake.in,CMakeLists.txt',
|
||||
\ 'coffee': '*.coffee,*._coffee,*.cake,*.cjsx,*.iced,*.coffeekup,Cakefile',
|
||||
\ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.tcc,*.tpp',
|
||||
\ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.tcc,*.tpp,*.moc',
|
||||
\ 'cql': '*.cql',
|
||||
\ 'cryptol': '*.cry,*.cyl,*.lcry,*.lcyl',
|
||||
\ 'crystal': '*.cr,Projectfile',
|
||||
@@ -51,7 +52,7 @@ let s:globs = {
|
||||
\ 'cucumber': '*.feature,*.story',
|
||||
\ 'cuesheet': '*.cue',
|
||||
\ 'd': '*.d,*.di',
|
||||
\ 'dart': '*.dart',
|
||||
\ 'dart': '*.dart,*.drt',
|
||||
\ 'dcov': '*.lst',
|
||||
\ 'dd': '*.dd',
|
||||
\ 'ddoc': '*.ddoc',
|
||||
@@ -200,6 +201,7 @@ let s:globs = {
|
||||
\ 'unison': '*.u,*.uu',
|
||||
\ 'v': '*.v',
|
||||
\ 'vala': '*.vala,*.vapi,*.valadoc',
|
||||
\ 'vb': '*.bas,*.cls,*.frm,*.frx,*.vba,*.vbs,*.dsm,*.ctl,*.sba',
|
||||
\ 'vbnet': '*.vb,*.vbhtml',
|
||||
\ 'vcl': '*.vcl',
|
||||
\ 'velocity': '*.vm',
|
||||
|
||||
@@ -60,6 +60,17 @@ if !exists('g:python_highlight_all')
|
||||
call s:SetDefault('g:python_slow_sync', 1)
|
||||
endif
|
||||
|
||||
|
||||
" Function used for patterns that end in a star: don't set the filetype if the
|
||||
" file name matches ft_ignore_pat.
|
||||
" When using this, the entry should probably be further down below with the
|
||||
" other StarSetf() calls.
|
||||
func! s:StarSetf(ft)
|
||||
if expand("<amatch>") !~ g:ft_ignore_pat
|
||||
exe 'setf ' . a:ft
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" filetypes
|
||||
|
||||
if !has_key(s:disabled_packages, '8th')
|
||||
@@ -123,7 +134,7 @@ if !has_key(s:disabled_packages, 'awk')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'c/c++')
|
||||
au! BufRead,BufNewFile *.c,*.cpp,*.tpp
|
||||
au! BufRead,BufNewFile *.cpp,*.tpp,*.c
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'cmake')
|
||||
@@ -332,7 +343,9 @@ endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'ada')
|
||||
au BufNewFile,BufRead *.ada setf ada
|
||||
au BufNewFile,BufRead *.ada_m setf ada
|
||||
au BufNewFile,BufRead *.adb setf ada
|
||||
au BufNewFile,BufRead *.adc setf ada
|
||||
au BufNewFile,BufRead *.ads setf ada
|
||||
au BufNewFile,BufRead *.gpr setf ada
|
||||
endif
|
||||
@@ -364,9 +377,19 @@ if !has_key(s:disabled_packages, 'ant')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'apache')
|
||||
au BufNewFile,BufRead */etc/apache2/*.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/conf.*/* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/mods-*/* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/sites-*/* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache
|
||||
au BufNewFile,BufRead */etc/httpd/*.conf setf apache
|
||||
au BufNewFile,BufRead */etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead {.,}htaccess setf apache
|
||||
au BufNewFile,BufRead access.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead apache.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead apache2.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead httpd.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead srm.conf* call s:StarSetf('apache')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'apiblueprint')
|
||||
@@ -381,7 +404,7 @@ endif
|
||||
if !has_key(s:disabled_packages, 'aptconf')
|
||||
au BufNewFile,BufRead */.aptitude/config setf aptconf
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/*.conf setf aptconf
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/[^.]* setf aptconf
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/[^.]* call s:StarSetf('aptconf')
|
||||
au BufNewFile,BufRead apt.conf setf aptconf
|
||||
endif
|
||||
|
||||
@@ -444,6 +467,7 @@ endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'awk')
|
||||
au BufNewFile,BufRead *.awk setf awk
|
||||
au BufNewFile,BufRead *.gawk setf awk
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'reason')
|
||||
@@ -452,16 +476,11 @@ if !has_key(s:disabled_packages, 'reason')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'c/c++')
|
||||
au BufNewFile,BufRead *.c setf c
|
||||
au BufNewFile,BufRead *.cats setf c
|
||||
au BufNewFile,BufRead *.h setf c
|
||||
au BufNewFile,BufRead *.idc setf c
|
||||
au BufNewFile,BufRead *.c++ setf cpp
|
||||
au BufNewFile,BufRead *.cc setf cpp
|
||||
au BufNewFile,BufRead *.cp setf cpp
|
||||
au BufNewFile,BufRead *.cpp setf cpp
|
||||
au BufNewFile,BufRead *.cxx setf cpp
|
||||
au BufNewFile,BufRead *.h setf cpp
|
||||
au BufNewFile,BufRead *.h++ setf cpp
|
||||
au BufNewFile,BufRead *.hh setf cpp
|
||||
au BufNewFile,BufRead *.hpp setf cpp
|
||||
@@ -469,8 +488,14 @@ if !has_key(s:disabled_packages, 'c/c++')
|
||||
au BufNewFile,BufRead *.inc setf cpp
|
||||
au BufNewFile,BufRead *.inl setf cpp
|
||||
au BufNewFile,BufRead *.ipp setf cpp
|
||||
au BufNewFile,BufRead *.moc setf cpp
|
||||
au BufNewFile,BufRead *.tcc setf cpp
|
||||
au BufNewFile,BufRead *.tpp setf cpp
|
||||
au BufNewFile,BufRead *.c setf c
|
||||
au BufNewFile,BufRead *.cats setf c
|
||||
au BufNewFile,BufRead *.idc setf c
|
||||
au BufNewFile,BufRead *.qc setf c
|
||||
au! BufNewFile,BufRead *.h call polyglot#DetectHFiletype()
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'caddyfile')
|
||||
@@ -545,6 +570,7 @@ endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'dart')
|
||||
au BufNewFile,BufRead *.dart setf dart
|
||||
au BufNewFile,BufRead *.drt setf dart
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'dhall')
|
||||
@@ -571,7 +597,7 @@ if !has_key(s:disabled_packages, 'dockerfile')
|
||||
au BufNewFile,BufRead *.dock setf Dockerfile
|
||||
au BufNewFile,BufRead *.dockerfile setf Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile setf Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile* setf Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile* call s:StarSetf('Dockerfile')
|
||||
au BufNewFile,BufRead dockerfile setf Dockerfile
|
||||
au BufNewFile,BufRead docker-compose*.yaml setf yaml.docker-compose
|
||||
au BufNewFile,BufRead docker-compose*.yml setf yaml.docker-compose
|
||||
@@ -660,7 +686,7 @@ if !has_key(s:disabled_packages, 'git')
|
||||
au BufNewFile,BufRead {.,}gitconfig setf gitconfig
|
||||
au BufNewFile,BufRead {.,}gitmodules setf gitconfig
|
||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||
au BufNewFile,BufRead {.,}gitsendemail.* setf gitsendemail
|
||||
au BufNewFile,BufRead {.,}gitsendemail.* call s:StarSetf('gitsendemail')
|
||||
au BufNewFile,BufRead *.git/{,modules/**/,worktrees/*/}{COMMIT_EDIT,TAG_EDIT,MERGE_,}MSG setf gitcommit
|
||||
endif
|
||||
|
||||
@@ -738,7 +764,7 @@ endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'haproxy')
|
||||
au BufNewFile,BufRead *.cfg setf haproxy
|
||||
au BufNewFile,BufRead haproxy*.c* setf haproxy
|
||||
au BufNewFile,BufRead haproxy*.c* call s:StarSetf('haproxy')
|
||||
au BufNewFile,BufRead haproxy.cfg setf haproxy
|
||||
endif
|
||||
|
||||
@@ -839,7 +865,7 @@ if !has_key(s:disabled_packages, 'jenkins')
|
||||
au BufNewFile,BufRead *.Jenkinsfile setf Jenkinsfile
|
||||
au BufNewFile,BufRead *.jenkinsfile setf Jenkinsfile
|
||||
au BufNewFile,BufRead Jenkinsfile setf Jenkinsfile
|
||||
au BufNewFile,BufRead Jenkinsfile* setf Jenkinsfile
|
||||
au BufNewFile,BufRead Jenkinsfile* call s:StarSetf('Jenkinsfile')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'jinja')
|
||||
@@ -1022,9 +1048,9 @@ if !has_key(s:disabled_packages, 'nginx')
|
||||
au BufNewFile,BufRead *.nginx setf nginx
|
||||
au BufNewFile,BufRead *.nginxconf setf nginx
|
||||
au BufNewFile,BufRead *.vhost setf nginx
|
||||
au BufNewFile,BufRead */etc/nginx/* setf nginx
|
||||
au BufNewFile,BufRead */etc/nginx/* call s:StarSetf('nginx')
|
||||
au BufNewFile,BufRead */nginx/*.conf setf nginx
|
||||
au BufNewFile,BufRead */usr/local/nginx/conf/* setf nginx
|
||||
au BufNewFile,BufRead */usr/local/nginx/conf/* call s:StarSetf('nginx')
|
||||
au BufNewFile,BufRead *nginx.conf setf nginx
|
||||
au BufNewFile,BufRead nginx*.conf setf nginx
|
||||
au BufNewFile,BufRead nginx.conf setf nginx
|
||||
@@ -1044,7 +1070,7 @@ if !has_key(s:disabled_packages, 'nix')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'objc')
|
||||
au BufNewFile,BufRead *.h setf objc
|
||||
au! BufNewFile,BufRead *.h call polyglot#DetectHFiletype()
|
||||
au! BufNewFile,BufRead *.m call polyglot#DetectMFiletype()
|
||||
endif
|
||||
|
||||
@@ -1328,7 +1354,7 @@ if !has_key(s:disabled_packages, 'ruby')
|
||||
au BufNewFile,BufRead Snapfile setf ruby
|
||||
au BufNewFile,BufRead Thorfile setf ruby
|
||||
au BufNewFile,BufRead Vagrantfile setf ruby
|
||||
au BufNewFile,BufRead [Rr]akefile* setf ruby
|
||||
au BufNewFile,BufRead [Rr]akefile* call s:StarSetf('ruby')
|
||||
au BufNewFile,BufRead buildfile setf ruby
|
||||
au BufNewFile,BufRead vagrantfile setf ruby
|
||||
au BufNewFile,BufRead *.erb setf eruby
|
||||
@@ -1657,9 +1683,9 @@ if !has_key(s:disabled_packages, 'xsl')
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'ansible')
|
||||
au BufNewFile,BufRead group_vars/* setf yaml.ansible
|
||||
au BufNewFile,BufRead group_vars/* call s:StarSetf('yaml.ansible')
|
||||
au BufNewFile,BufRead handlers.*.y{a,}ml setf yaml.ansible
|
||||
au BufNewFile,BufRead host_vars/* setf yaml.ansible
|
||||
au BufNewFile,BufRead host_vars/* call s:StarSetf('yaml.ansible')
|
||||
au BufNewFile,BufRead local.y{a,}ml setf yaml.ansible
|
||||
au BufNewFile,BufRead main.y{a,}ml setf yaml.ansible
|
||||
au BufNewFile,BufRead playbook.y{a,}ml setf yaml.ansible
|
||||
@@ -1712,6 +1738,22 @@ if !has_key(s:disabled_packages, 'trasys')
|
||||
au! BufNewFile,BufRead *.inp call polyglot#DetectInpFiletype()
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'basic')
|
||||
au BufNewFile,BufRead *.basic setf basic
|
||||
endif
|
||||
|
||||
if !has_key(s:disabled_packages, 'visual-basic')
|
||||
au BufNewFile,BufRead *.cls setf vb
|
||||
au BufNewFile,BufRead *.ctl setf vb
|
||||
au BufNewFile,BufRead *.dsm setf vb
|
||||
au BufNewFile,BufRead *.frm setf vb
|
||||
au BufNewFile,BufRead *.frx setf vb
|
||||
au BufNewFile,BufRead *.sba setf vb
|
||||
au BufNewFile,BufRead *.vba setf vb
|
||||
au BufNewFile,BufRead *.vbs setf vb
|
||||
au! BufNewFile,BufRead *.bas call polyglot#DetectBasFiletype()
|
||||
endif
|
||||
|
||||
|
||||
" end filetypes
|
||||
|
||||
@@ -1719,6 +1761,162 @@ au BufNewFile,BufRead,StdinReadPost *
|
||||
\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
|
||||
\ | call polyglot#Heuristics() | endif
|
||||
|
||||
|
||||
if v:version < 700 || &cp
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
" Code below re-implements sleuth for vim-polyglot
|
||||
let g:loaded_sleuth = 1
|
||||
|
||||
" Makes shiftwidth to be synchronized with tabstop by default
|
||||
if &shiftwidth == &tabstop
|
||||
let &shiftwidth = 0
|
||||
endif
|
||||
|
||||
function! s:guess(lines) abort
|
||||
let options = {}
|
||||
let ccomment = 0
|
||||
let podcomment = 0
|
||||
let triplequote = 0
|
||||
let backtick = 0
|
||||
let xmlcomment = 0
|
||||
let heredoc = ''
|
||||
let minindent = 10
|
||||
let spaces_minus_tabs = 0
|
||||
|
||||
for line in a:lines
|
||||
if !len(line) || line =~# '^\W*$'
|
||||
continue
|
||||
endif
|
||||
|
||||
if line =~# '^\s*/\*'
|
||||
let ccomment = 1
|
||||
endif
|
||||
if ccomment
|
||||
if line =~# '\*/'
|
||||
let ccomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
if line =~# '^=\w'
|
||||
let podcomment = 1
|
||||
endif
|
||||
if podcomment
|
||||
if line =~# '^=\%(end\|cut\)\>'
|
||||
let podcomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
if triplequote
|
||||
if line =~# '^[^"]*"""[^"]*$'
|
||||
let triplequote = 0
|
||||
endif
|
||||
continue
|
||||
elseif line =~# '^[^"]*"""[^"]*$'
|
||||
let triplequote = 1
|
||||
endif
|
||||
|
||||
if backtick
|
||||
if line =~# '^[^`]*`[^`]*$'
|
||||
let backtick = 0
|
||||
endif
|
||||
continue
|
||||
elseif &filetype ==# 'go' && line =~# '^[^`]*`[^`]*$'
|
||||
let backtick = 1
|
||||
endif
|
||||
|
||||
if line =~# '^\s*<\!--'
|
||||
let xmlcomment = 1
|
||||
endif
|
||||
if xmlcomment
|
||||
if line =~# '-->'
|
||||
let xmlcomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
" This is correct order because both "<<EOF" and "EOF" matches end
|
||||
if heredoc != ''
|
||||
if line =~# heredoc
|
||||
let heredoc = ''
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
let herematch = matchlist(line, '\C<<\W*\([A-Z]\+\)\s*$')
|
||||
if len(herematch) > 0
|
||||
let heredoc = herematch[1] . '$'
|
||||
endif
|
||||
|
||||
let spaces_minus_tabs += line[0] == "\t" ? 1 : -1
|
||||
|
||||
if line[0] == "\t"
|
||||
setlocal noexpandtab
|
||||
return 1
|
||||
elseif line[0] == " "
|
||||
let indent = len(matchstr(line, '^ *'))
|
||||
if (indent % 2 == 0 || indent % 3 == 0) && indent < minindent
|
||||
let minindent = indent
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
if minindent < 10
|
||||
setlocal expandtab
|
||||
let &shiftwidth=minindent
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:detect_indent() abort
|
||||
if &buftype ==# 'help'
|
||||
return
|
||||
endif
|
||||
|
||||
if s:guess(getline(1, 32))
|
||||
return
|
||||
endif
|
||||
let pattern = sleuth#GlobForFiletype(&filetype)
|
||||
if len(pattern) == 0
|
||||
return
|
||||
endif
|
||||
let pattern = '{' . pattern . ',.git,.svn,.hg}'
|
||||
let dir = expand('%:p:h')
|
||||
let level = 3
|
||||
while isdirectory(dir) && dir !=# fnamemodify(dir, ':h') && level > 0
|
||||
" Ignore files from homedir and root
|
||||
if dir == expand('~') || dir == '/'
|
||||
return
|
||||
endif
|
||||
for neighbor in glob(dir . '/' . pattern, 0, 1)[0:level]
|
||||
" Do not consider directories above .git, .svn or .hg
|
||||
if fnamemodify(neighbor, ":h:t")[0] == "."
|
||||
return
|
||||
endif
|
||||
if neighbor !=# expand('%:p') && filereadable(neighbor)
|
||||
if s:guess(readfile(neighbor, '', 32))
|
||||
return
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
let dir = fnamemodify(dir, ':h')
|
||||
let level -= 1
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
setglobal smarttab
|
||||
|
||||
augroup polyglot
|
||||
autocmd!
|
||||
autocmd FileType * call s:detect_indent()
|
||||
augroup END
|
||||
|
||||
" restore Vi compatibility settings
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
49
ftplugin/vb.vim
Normal file
49
ftplugin/vb.vim
Normal file
@@ -0,0 +1,49 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: VisualBasic (ft=vb)
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
|
||||
|
||||
" we need this wrapper, as call doesn't allow a count
|
||||
fun! <SID>VbSearch(pattern, flags)
|
||||
let cnt = v:count1
|
||||
while cnt > 0
|
||||
call search(a:pattern, a:flags)
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
endfun
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" NOTE the double escaping \\|
|
||||
nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
|
||||
nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
|
||||
|
||||
" matchit support
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase=1
|
||||
let b:match_words=
|
||||
\ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
|
||||
\ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
|
||||
\ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
|
||||
\ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
|
||||
\ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
|
||||
\ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
|
||||
\ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
@@ -23,6 +23,20 @@ rules:
|
||||
filetype: aspperl
|
||||
- filetype: aspvbs
|
||||
---
|
||||
extensions: [h]
|
||||
rules:
|
||||
- lines: 200
|
||||
pattern: '^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])'
|
||||
rules:
|
||||
- if_exists: "g:c_syntax_for_h"
|
||||
filetype: objc
|
||||
- filetype: objcpp
|
||||
- if_exists: "g:c_syntax_for_h"
|
||||
filetype: c
|
||||
- if_exists: "g:ch_syntax_for_h"
|
||||
filetype: ch
|
||||
- filetype: cpp
|
||||
---
|
||||
extensions: [m]
|
||||
rules:
|
||||
- lines: 100
|
||||
@@ -93,3 +107,11 @@ rules:
|
||||
pattern: '^>\s*--.*[Ii]dris ?1'
|
||||
filetype: lidris
|
||||
- filetype: lidris2
|
||||
---
|
||||
extensions: [bas]
|
||||
rules:
|
||||
- lines: 5
|
||||
pattern: 'VB_Name|Begin VB\.(Form|MDIForm|UserControl)'
|
||||
filetype: vb
|
||||
ignore_case: true
|
||||
- filetype: basic
|
||||
|
||||
82
indent/vb.vim
Normal file
82
indent/vb.vim
Normal file
@@ -0,0 +1,82 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: VisualBasic (ft=vb) / Basic (ft=basic) / SaxBasic (ft=vb)
|
||||
" Author: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Fri, 18 Jun 2004 07:22:42 CEST
|
||||
" Small update 2010 Jul 28 by Maxim Kim
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=VbGetIndent(v:lnum)
|
||||
setlocal indentkeys&
|
||||
setlocal indentkeys+==~else,=~elseif,=~end,=~wend,=~case,=~next,=~select,=~loop,<:>
|
||||
|
||||
let b:undo_indent = "set ai< indentexpr< indentkeys<"
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*VbGetIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
fun! VbGetIndent(lnum)
|
||||
" labels and preprocessor get zero indent immediately
|
||||
let this_line = getline(a:lnum)
|
||||
let LABELS_OR_PREPROC = '^\s*\(\<\k\+\>:\s*$\|#.*\)'
|
||||
if this_line =~? LABELS_OR_PREPROC
|
||||
return 0
|
||||
endif
|
||||
|
||||
" Find a non-blank line above the current line.
|
||||
" Skip over labels and preprocessor directives.
|
||||
let lnum = a:lnum
|
||||
while lnum > 0
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
let previous_line = getline(lnum)
|
||||
if previous_line !~? LABELS_OR_PREPROC
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
|
||||
" Hit the start of the file, use zero indent.
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let ind = indent(lnum)
|
||||
|
||||
" Add
|
||||
if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
|
||||
" Subtract
|
||||
if this_line =~? '^\s*\<end\>\s\+\<select\>'
|
||||
if previous_line !~? '^\s*\<select\>'
|
||||
let ind = ind - 2 * shiftwidth()
|
||||
else
|
||||
" this case is for an empty 'select' -- 'end select'
|
||||
" (w/o any case statements) like:
|
||||
"
|
||||
" select case readwrite
|
||||
" end select
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
|
||||
let ind = ind - shiftwidth()
|
||||
elseif this_line =~? '^\s*\<\(case\|default\)\>'
|
||||
if previous_line !~? '^\s*\<select\>'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfun
|
||||
|
||||
" vim:sw=4
|
||||
|
||||
endif
|
||||
@@ -93,7 +93,9 @@ filetypes:
|
||||
- adb
|
||||
- ads
|
||||
- ada
|
||||
- adc
|
||||
- gpr
|
||||
- ada_m
|
||||
---
|
||||
name: ahdl
|
||||
remote: vim/vim:runtime
|
||||
@@ -155,6 +157,16 @@ filetypes:
|
||||
- .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*'
|
||||
---
|
||||
name: apiblueprint
|
||||
remote: sheerun/apiblueprint.vim
|
||||
@@ -181,6 +193,11 @@ filetypes:
|
||||
- '*/.aptitude/config'
|
||||
- '*/etc/apt/apt.conf.d/[^.]*'
|
||||
- '*/etc/apt/apt.conf.d/*.conf'
|
||||
ignored_warnings:
|
||||
# some kind of bugs in filetype detection algorithm
|
||||
- '*/etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf}'
|
||||
- '*/etc/apt/apt.conf.d/]\+'
|
||||
- '*/etc/apt/apt.conf.d/]\+.conf'
|
||||
---
|
||||
name: arch
|
||||
remote: vim/vim:runtime
|
||||
@@ -292,19 +309,25 @@ filetypes:
|
||||
- name: awk
|
||||
extensions:
|
||||
- awk
|
||||
- gawk
|
||||
---
|
||||
name: c/c++
|
||||
remote: vim-jp/vim-cpp
|
||||
filetypes:
|
||||
- name: c
|
||||
linguist: C
|
||||
- name: cpp
|
||||
linguist: C++
|
||||
extra_extensions:
|
||||
- moc
|
||||
ignored_extensions:
|
||||
# conflicts with more popular reason, remove after heuristics work
|
||||
- re
|
||||
# implemented by arduino
|
||||
- ino
|
||||
- name: c
|
||||
linguist: C
|
||||
extra_extensions:
|
||||
# Quake C
|
||||
- qc
|
||||
---
|
||||
name: caddyfile
|
||||
remote: isobit/vim-caddyfile
|
||||
@@ -348,14 +371,13 @@ filetypes:
|
||||
extra_extensions:
|
||||
# 17 results: https://github.com/search?q=extension%3Acoffeekup+html&type=Code
|
||||
- coffeekup
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# Probably mistake
|
||||
- '*Cakefile'
|
||||
# Used by C#
|
||||
- csx
|
||||
# Used by Chuck
|
||||
- ck
|
||||
ignored_filenames:
|
||||
# Probably mistake
|
||||
- '*Cakefile'
|
||||
- name: litcoffee
|
||||
linguist: Literate CoffeeScript
|
||||
extra_extensions:
|
||||
@@ -395,7 +417,7 @@ filetypes:
|
||||
extra_extensions:
|
||||
- tsv
|
||||
- tab
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# This is definitely not csv-only, maybe re-enable when heuristics done
|
||||
- dat
|
||||
---
|
||||
@@ -420,6 +442,8 @@ remote: dart-lang/dart-vim-plugin
|
||||
filetypes:
|
||||
- name: dart
|
||||
linguist: Dart
|
||||
extra_extensions:
|
||||
- drt
|
||||
---
|
||||
name: dhall
|
||||
remote: vmchale/dhall-vim
|
||||
@@ -460,7 +484,7 @@ filetypes:
|
||||
filenames:
|
||||
- 'docker-compose*.yaml'
|
||||
- 'docker-compose*.yml'
|
||||
ignored_filenames:
|
||||
ignored_warnings:
|
||||
# Probably mistakes?
|
||||
- 'docker-compose*.yaml*'
|
||||
- 'docker-compose*.yml*'
|
||||
@@ -815,8 +839,10 @@ filetypes:
|
||||
extra_extensions:
|
||||
- j2
|
||||
ignored_extensions:
|
||||
- mustache
|
||||
- njk
|
||||
ignore_warnings:
|
||||
# handled by mustache plugin
|
||||
- mustache
|
||||
---
|
||||
name: jq
|
||||
remote: vito-c/jq.vim
|
||||
@@ -857,8 +883,8 @@ filetypes:
|
||||
extra_extensions:
|
||||
- jst
|
||||
- ect
|
||||
ignored_extensions:
|
||||
# I haven't found reference to them
|
||||
ignored_warnings:
|
||||
# I haven't found reference to them on github
|
||||
- djs
|
||||
- hamljs
|
||||
---
|
||||
@@ -974,6 +1000,7 @@ filetypes:
|
||||
ignored_extensions:
|
||||
# Handled by mdx extension
|
||||
- mdx
|
||||
ignored_warnings:
|
||||
- '{md,mdx,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx}'
|
||||
---
|
||||
name: mdx
|
||||
@@ -1551,9 +1578,9 @@ remote: lumiliet/vim-twig
|
||||
filetypes:
|
||||
- name: html.twig
|
||||
linguist: Twig
|
||||
ignored_extensions:
|
||||
ignored_warnings:
|
||||
# handled by other extension
|
||||
- xml.twig
|
||||
ignored_extensions:
|
||||
# already covered by .twig
|
||||
- html.twig
|
||||
- name: xml.twig
|
||||
@@ -1659,7 +1686,7 @@ filetypes:
|
||||
extra_filenames:
|
||||
- fish_history
|
||||
- fish_read_history
|
||||
ignored_filenames:
|
||||
ignored_warnings:
|
||||
- '~/.config/fish/fish_{read_,}history'
|
||||
# Ansible needs to be after YAML
|
||||
---
|
||||
@@ -1721,3 +1748,26 @@ filetypes:
|
||||
- name: trasys
|
||||
extensions:
|
||||
- inp
|
||||
---
|
||||
name: basic
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/basic.vim'
|
||||
filetypes:
|
||||
- name: basic
|
||||
extensions:
|
||||
- basic
|
||||
---
|
||||
name: visual-basic
|
||||
remote: vim/vim:runtime
|
||||
glob: '**/vb.vim'
|
||||
filetypes:
|
||||
- name: vb
|
||||
linguist: VBA
|
||||
extra_extensions:
|
||||
- vbs
|
||||
- dsm
|
||||
- ctl
|
||||
# SaxBasic is close to Visual Basic
|
||||
- sba
|
||||
ignored_warnings:
|
||||
- vb
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
" Heuristically set expandtab and shiftwidth options
|
||||
"
|
||||
" Modified version of vim-sleuth:
|
||||
" - tabstop is not set, it's up to user to set it
|
||||
" - check maximum of 32 lines, instead of 1024
|
||||
" - check maximum 6 files, instead of 20
|
||||
" - check maximum of 2 filer per directory level, instead of 8
|
||||
" - check maximum of 3 directory levels
|
||||
" - check only to the nearest .git, .hg, or .svn directory
|
||||
" - globs are concatenated for performance
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'autoindent') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists("g:loaded_polyglot") || v:version < 700 || &cp
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_sleuth = 1
|
||||
let g:loaded_polyglot = 1
|
||||
|
||||
" Makes shiftwidth to be synchronized with tabstop by default
|
||||
if &shiftwidth == &tabstop
|
||||
let &shiftwidth = 0
|
||||
endif
|
||||
|
||||
function! s:guess(lines) abort
|
||||
let options = {}
|
||||
let ccomment = 0
|
||||
let podcomment = 0
|
||||
let triplequote = 0
|
||||
let backtick = 0
|
||||
let xmlcomment = 0
|
||||
let heredoc = ''
|
||||
let minindent = 10
|
||||
let spaces_minus_tabs = 0
|
||||
|
||||
for line in a:lines
|
||||
if !len(line) || line =~# '^\W*$'
|
||||
continue
|
||||
endif
|
||||
|
||||
if line =~# '^\s*/\*'
|
||||
let ccomment = 1
|
||||
endif
|
||||
if ccomment
|
||||
if line =~# '\*/'
|
||||
let ccomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
if line =~# '^=\w'
|
||||
let podcomment = 1
|
||||
endif
|
||||
if podcomment
|
||||
if line =~# '^=\%(end\|cut\)\>'
|
||||
let podcomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
if triplequote
|
||||
if line =~# '^[^"]*"""[^"]*$'
|
||||
let triplequote = 0
|
||||
endif
|
||||
continue
|
||||
elseif line =~# '^[^"]*"""[^"]*$'
|
||||
let triplequote = 1
|
||||
endif
|
||||
|
||||
if backtick
|
||||
if line =~# '^[^`]*`[^`]*$'
|
||||
let backtick = 0
|
||||
endif
|
||||
continue
|
||||
elseif &filetype ==# 'go' && line =~# '^[^`]*`[^`]*$'
|
||||
let backtick = 1
|
||||
endif
|
||||
|
||||
if line =~# '^\s*<\!--'
|
||||
let xmlcomment = 1
|
||||
endif
|
||||
if xmlcomment
|
||||
if line =~# '-->'
|
||||
let xmlcomment = 0
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
|
||||
" This is correct order because both "<<EOF" and "EOF" matches end
|
||||
if heredoc != ''
|
||||
if line =~# heredoc
|
||||
let heredoc = ''
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
let herematch = matchlist(line, '\C<<\W*\([A-Z]\+\)\s*$')
|
||||
if len(herematch) > 0
|
||||
let heredoc = herematch[1] . '$'
|
||||
endif
|
||||
|
||||
let spaces_minus_tabs += line[0] == "\t" ? 1 : -1
|
||||
|
||||
if line[0] == "\t"
|
||||
setlocal noexpandtab
|
||||
return 1
|
||||
elseif line[0] == " "
|
||||
let indent = len(matchstr(line, '^ *'))
|
||||
if indent % 2 == 0 && indent < minindent
|
||||
let minindent = indent
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
if minindent < 10
|
||||
setlocal expandtab
|
||||
let &shiftwidth=minindent
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:detect_indent() abort
|
||||
if &buftype ==# 'help'
|
||||
return
|
||||
endif
|
||||
|
||||
if s:guess(getline(1, 32))
|
||||
return
|
||||
endif
|
||||
let pattern = sleuth#GlobForFiletype(&filetype)
|
||||
if len(pattern) == 0
|
||||
return
|
||||
endif
|
||||
let pattern = '{' . pattern . ',.git,.svn,.hg}'
|
||||
let dir = expand('%:p:h')
|
||||
let level = 3
|
||||
while isdirectory(dir) && dir !=# fnamemodify(dir, ':h') && level > 0
|
||||
" Ignore files from homedir and root
|
||||
if dir == expand('~') || dir == '/'
|
||||
return
|
||||
endif
|
||||
for neighbor in glob(dir . '/' . pattern, 0, 1)[0:level]
|
||||
" Do not consider directories above .git, .svn or .hg
|
||||
if fnamemodify(neighbor, ":h:t")[0] == "."
|
||||
return
|
||||
endif
|
||||
if neighbor !=# expand('%:p') && filereadable(neighbor)
|
||||
if s:guess(readfile(neighbor, '', 32))
|
||||
return
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
let dir = fnamemodify(dir, ':h')
|
||||
let level -= 1
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
setglobal smarttab
|
||||
|
||||
augroup polyglot
|
||||
autocmd!
|
||||
autocmd FileType * call s:detect_indent()
|
||||
augroup END
|
||||
@@ -59,10 +59,15 @@ def load_data()
|
||||
|
||||
linguist = languages.fetch(filetype["linguist"])
|
||||
|
||||
filetype["extensions"] = ((
|
||||
(linguist["extensions"] || []).map { |e| e[1..-1] } |
|
||||
filetype["extensions"] = (linguist["extensions"] || []).map { |e| e[1..-1] } |
|
||||
filetype.fetch("extra_extensions", [])
|
||||
) - filetype.fetch("ignored_extensions", [])).uniq
|
||||
|
||||
extra_ignored_extensions = filetype.fetch("ignored_extensions", []) - filetype["extensions"]
|
||||
if extra_ignored_extensions.size > 0
|
||||
raise StandardError.new("[#{filetype["name"]}]: Unnecessary ignored extensions: #{extra_ignored_extensions.join(", ")}")
|
||||
end
|
||||
|
||||
filetype["extensions"] -= filetype.fetch("ignored_extensions", [])
|
||||
|
||||
filetype["filenames"] = ((
|
||||
(linguist["filenames"] || []) |
|
||||
@@ -263,10 +268,6 @@ def rule_to_code(rule)
|
||||
end
|
||||
end
|
||||
|
||||
if rule.has_key?("rules")
|
||||
return rule["rules"].map { |r| indent(rule_to_code(r), 0) }.join("\n")
|
||||
end
|
||||
|
||||
if rule.has_key?("pattern") || rule.has_key?("or") || rule.has_key?("and")
|
||||
return <<~EOS
|
||||
if #{pattern_to_condition(rule)}
|
||||
@@ -275,6 +276,10 @@ def rule_to_code(rule)
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("rules")
|
||||
return rule["rules"].map { |r| indent(rule_to_code(r), 0) }.join("\n")
|
||||
end
|
||||
|
||||
if rule.has_key?("if_set")
|
||||
return <<~EOS
|
||||
if #{rule["negative"] ? "!" : ""}#{rule["if_set"]}
|
||||
@@ -283,6 +288,14 @@ def rule_to_code(rule)
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("if_exists")
|
||||
return <<~EOS
|
||||
if #{rule["negative"] ? "!" : ""}exists("#{rule["if_exists"]}")
|
||||
#{indent(rule_to_code(except(rule, "if_exists", "negative")), 2)}
|
||||
endif
|
||||
EOS
|
||||
end
|
||||
|
||||
if rule.has_key?("set")
|
||||
return <<~EOS
|
||||
let #{rule["set"]} = 1
|
||||
@@ -394,7 +407,19 @@ def generate_ftdetect(packages, heuristics)
|
||||
expected_filetypes = detect_filetypes('tmp/**/ftdetect/*.vim')
|
||||
native_filetypes = detect_filetypes('tmp/vim/vim/runtime/filetype.vim')
|
||||
native_extensions = native_filetypes.flat_map { |k, v| v["extensions"] }
|
||||
|
||||
all_filetypes = Hash.new { |h, k| h[k] = { extensions: [], filenames: [] } }
|
||||
|
||||
for k, v in expected_filetypes
|
||||
all_filetypes[k][:extensions].concat(v[:extensions])
|
||||
all_filetypes[k][:filenames].concat(v[:filenames])
|
||||
end
|
||||
|
||||
for k, v in native_filetypes
|
||||
all_filetypes[k][:extensions].concat(v[:extensions])
|
||||
all_filetypes[k][:filenames].concat(v[:filenames])
|
||||
end
|
||||
|
||||
for package in packages
|
||||
name = package.fetch("name")
|
||||
|
||||
@@ -438,12 +463,16 @@ def generate_ftdetect(packages, heuristics)
|
||||
extensions = filetype["extensions"]
|
||||
filenames = filetype["filenames"]
|
||||
|
||||
if expected_filetypes[name] && !filetype["syntax"]
|
||||
for e in expected_filetypes.fetch(name)[:extensions] - extensions - expand_all(filetype.fetch("ignored_extensions", []))
|
||||
expected_extensions = (all_filetypes.has_key?(name) ? all_filetypes.fetch(name)[:extensions] : []).map(&:downcase)
|
||||
ignored_extensions = expand_all(filetype.fetch("ignored_extensions", []))
|
||||
ignored_warnings = expand_all(filetype.fetch("ignored_warnings", []))
|
||||
|
||||
if all_filetypes[name] && !filetype["syntax"]
|
||||
for e in expected_extensions - extensions - ignored_extensions - ignored_warnings
|
||||
puts "Probable missing extension for #{name}: #{e}"
|
||||
end
|
||||
|
||||
for e in expected_filetypes.fetch(name)[:filenames] - expand_all(filenames).flat_map { |e| [e, e.gsub(/^\./, '')] } - expand_all(filetype.fetch("ignored_filenames", [])) - ['*']
|
||||
for e in all_filetypes.fetch(name)[:filenames] - expand_all(filenames).flat_map { |e| [e, e.gsub(/^\./, '')] } - expand_all(filetype.fetch("ignored_warnings", [])) - ['*']
|
||||
puts "Probable missing filename for #{name}: #{e}"
|
||||
end
|
||||
end
|
||||
@@ -471,7 +500,11 @@ def generate_ftdetect(packages, heuristics)
|
||||
if filename[0] == "."
|
||||
filename = "{.,}" + filename[1..]
|
||||
end
|
||||
autocommands << " au BufNewFile,BufRead #{filename} #{set_command}\n"
|
||||
if filename[-1] == "*"
|
||||
autocommands << " au BufNewFile,BufRead #{filename} call s:StarSetf('#{name}')\n"
|
||||
else
|
||||
autocommands << " au BufNewFile,BufRead #{filename} #{set_command}\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -9,145 +9,145 @@ function! TestExtension(filetype, filename, content)
|
||||
exec ":bw!"
|
||||
catch
|
||||
echo g:message
|
||||
echo 'Filename "' . a:filename . '" does not resolve to extension "' . a:filetype . '"'
|
||||
echo ' instead received: "' . v:exception . '"'
|
||||
exec ':cq!'
|
||||
echo "Filename '" . a:filename . "' does not resolve to extension '" . a:filetype . "'"
|
||||
echo " instead received: '" . v:exception . "'"
|
||||
exec ":cq!"
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
call TestExtension('sh', 'bash1', "#!/bin/bash")
|
||||
call TestExtension('sh', 'bash2', "#! /bin/bash")
|
||||
call TestExtension('sh', 'bash3', "#! /bin/bash2.3")
|
||||
call TestExtension('sh', 'bash4', "#!/usr/bin/env bash")
|
||||
call TestExtension('sh', 'bash6', "#!/usr/bin/env -i -=split-string foo=bar bash -l foo")
|
||||
call TestExtension('sh', 'bash1', "#!/bin/bash")
|
||||
call TestExtension("sh", "bash1", "#!/bin/bash")
|
||||
call TestExtension("sh", "bash2", "#! /bin/bash")
|
||||
call TestExtension("sh", "bash3", "#! /bin/bash2.3")
|
||||
call TestExtension("sh", "bash4", "#!/usr/bin/env bash")
|
||||
call TestExtension("sh", "bash6", "#!/usr/bin/env -i -=split-string foo=bar bash -l foo")
|
||||
call TestExtension("sh", "bash1", "#!/bin/bash")
|
||||
|
||||
" Vim help file
|
||||
call TestExtension('help', $VIMRUNTIME . '/doc/foobar.txt', '')
|
||||
call TestExtension("help", $VIMRUNTIME . "/doc/foobar.txt", "")
|
||||
|
||||
" Abaqus or Trasys
|
||||
call TestExtension('abaqus', 'foobar.inp', "*HEADING\nFoobar")
|
||||
call TestExtension('trasys', 'foobar.inp', "MSC PATRAN\n* foobar\nHEADER SURFACE DATA\nBSC ENCLO1")
|
||||
call TestExtension("abaqus", "foobar.inp", "*HEADING\nFoobar")
|
||||
call TestExtension("trasys", "foobar.inp", "MSC PATRAN\n* foobar\nHEADER SURFACE DATA\nBSC ENCLO1")
|
||||
|
||||
" 8th (Firth-derivative)
|
||||
call TestExtension('8th', 'foobar.8th', '')
|
||||
call TestExtension('8th', 'foobar.8th', '')
|
||||
call TestExtension("8th", "foobar.8th", "")
|
||||
call TestExtension("8th", "foobar.8th", "")
|
||||
|
||||
" A-A-P recipe
|
||||
call TestExtension('aap', 'foobar.aap', '')
|
||||
call TestExtension("aap", "foobar.aap", "")
|
||||
|
||||
|
||||
" A2ps printing utility
|
||||
call TestExtension('a2ps', '/etc/a2ps.cfg', '')
|
||||
call TestExtension('a2ps', '/usr/local/etc/a2ps.cfg', '')
|
||||
call TestExtension('a2ps', '/etc/a2ps/foobar.cfg', '')
|
||||
call TestExtension('a2ps', '/usr/local/etc/a2ps/foobar.cfg', '')
|
||||
call TestExtension('a2ps', '/tmp/a2psrc', '')
|
||||
call TestExtension('a2ps', '/tmp/.a2psrc', '')
|
||||
call TestExtension("a2ps", "/etc/a2ps.cfg", "")
|
||||
call TestExtension("a2ps", "/usr/local/etc/a2ps.cfg", "")
|
||||
call TestExtension("a2ps", "/etc/a2ps/foobar.cfg", "")
|
||||
call TestExtension("a2ps", "/usr/local/etc/a2ps/foobar.cfg", "")
|
||||
call TestExtension("a2ps", "/tmp/a2psrc", "")
|
||||
call TestExtension("a2ps", "/tmp/.a2psrc", "")
|
||||
|
||||
" ABAB/4
|
||||
call TestExtension('abap', 'foobar.abap', '')
|
||||
call TestExtension("abap", "foobar.abap", "")
|
||||
|
||||
" ABC music notation
|
||||
call TestExtension('abc', 'foobar.abc', '')
|
||||
call TestExtension("abc", "foobar.abc", "")
|
||||
|
||||
" ABEL
|
||||
call TestExtension('abel', 'foobar.abl', '')
|
||||
call TestExtension("abel", "foobar.abl", "")
|
||||
|
||||
" AceDB
|
||||
call TestExtension('acedb', 'foobar.wrm', '')
|
||||
call TestExtension("acedb", "foobar.wrm", "")
|
||||
|
||||
" Ada (83, 9X, 95)
|
||||
call TestExtension('ada', 'foobar.adb', '')
|
||||
call TestExtension('ada', 'foobar.ads', '')
|
||||
call TestExtension('ada', 'foobar.ada', '')
|
||||
call TestExtension('ada', 'foobar.gpr', '')
|
||||
call TestExtension("ada", "foobar.adb", "")
|
||||
call TestExtension("ada", "foobar.ads", "")
|
||||
call TestExtension("ada", "foobar.ada", "")
|
||||
call TestExtension("ada", "foobar.gpr", "")
|
||||
|
||||
" AHDL
|
||||
call TestExtension('ahdl', 'foobar.tdf', '')
|
||||
call TestExtension("ahdl", "foobar.tdf", "")
|
||||
|
||||
" AIDL
|
||||
call TestExtension('aidl', 'foobar.aidl', '')
|
||||
call TestExtension("aidl", "foobar.aidl", "")
|
||||
|
||||
" AMPL
|
||||
call TestExtension('ampl', 'foobar.run', '')
|
||||
call TestExtension("ampl", "foobar.run", "")
|
||||
|
||||
" Ant
|
||||
call TestExtension('ant', 'build.xml', '')
|
||||
call TestExtension("ant", "build.xml", "")
|
||||
|
||||
" Arduino
|
||||
call TestExtension('arduino', 'foobar.ino', '')
|
||||
call TestExtension('arduino', 'foobar.pde', '')
|
||||
call TestExtension("arduino", "foobar.ino", "")
|
||||
call TestExtension("arduino", "foobar.pde", "")
|
||||
|
||||
" Apache config file
|
||||
call TestExtension('apache', '.htaccess', '')
|
||||
call TestExtension('apache', '/etc/httpd/foobar.conf', '')
|
||||
call TestExtension('apache', '/etc/apache2/sites-foobar/foobar.com', '')
|
||||
call TestExtension('apache', '/usr/local/etc/httpd/foobar.conf', '')
|
||||
call TestExtension('apache', '/usr/local/etc/apache2/sites-foobar/foobar.com', '')
|
||||
call TestExtension("apache", ".htaccess", "")
|
||||
call TestExtension("apache", "/etc/httpd/foobar.conf", "")
|
||||
call TestExtension("apache", "/etc/apache2/sites-foobar/foobar.com", "")
|
||||
call TestExtension("apache", "/usr/local/etc/httpd/foobar.conf", "")
|
||||
call TestExtension("apache", "/usr/local/etc/apache2/sites-foobar/foobar.com", "")
|
||||
|
||||
" XA65 MOS6510 cross assembler
|
||||
call TestExtension('a65', 'foobar.a65', '')
|
||||
call TestExtension("a65", "foobar.a65", "")
|
||||
|
||||
" Applescript
|
||||
call TestExtension('applescript', 'foobar.scpt', '')
|
||||
call TestExtension("applescript", "foobar.scpt", "")
|
||||
|
||||
" Applix ELF
|
||||
call TestExtension('elf', 'foobar.am', '')
|
||||
call TestExtension('automake', 'Makefile.am', '')
|
||||
call TestExtension('automake', 'makefile.am', '')
|
||||
call TestExtension("elf", "foobar.am", "")
|
||||
call TestExtension("automake", "Makefile.am", "")
|
||||
call TestExtension("automake", "makefile.am", "")
|
||||
|
||||
" ALSA configuration
|
||||
call TestExtension('alsaconf', '.asoundrc', '')
|
||||
call TestExtension('alsaconf', '/usr/share/alsa/alsa.conf', '')
|
||||
call TestExtension('alsaconf', '/media/foo/usr/share/alsa/alsa.conf', '')
|
||||
call TestExtension('alsaconf', '/etc/asound.conf', '')
|
||||
call TestExtension('alsaconf', '/media/foo/etc/asound.conf', '')
|
||||
call TestExtension("alsaconf", ".asoundrc", "")
|
||||
call TestExtension("alsaconf", "/usr/share/alsa/alsa.conf", "")
|
||||
call TestExtension("alsaconf", "/media/foo/usr/share/alsa/alsa.conf", "")
|
||||
call TestExtension("alsaconf", "/etc/asound.conf", "")
|
||||
call TestExtension("alsaconf", "/media/foo/etc/asound.conf", "")
|
||||
|
||||
" Arc Macro Language
|
||||
call TestExtension('aml', 'foobar.aml', '')
|
||||
call TestExtension("aml", "foobar.aml", "")
|
||||
|
||||
" APT config file
|
||||
call TestExtension('aptconf', 'apt.conf', '')
|
||||
call TestExtension('aptconf', '/root/.aptitude/config', '')
|
||||
call TestExtension('aptconf', '/etc/apt/apt.conf.d/foo_bar-12', '')
|
||||
call TestExtension('aptconf', '/etc/apt/apt.conf.d/foo_bar-12.conf', '')
|
||||
call TestExtension('', '/etc/apt/apt.conf.d/.gsdf', '')
|
||||
call TestExtension("aptconf", "apt.conf", "")
|
||||
call TestExtension("aptconf", "/root/.aptitude/config", "")
|
||||
call TestExtension("aptconf", "/etc/apt/apt.conf.d/foo_bar-12", "")
|
||||
call TestExtension("aptconf", "/etc/apt/apt.conf.d/foo_bar-12.conf", "")
|
||||
call TestExtension("", "/etc/apt/apt.conf.d/.gsdf", "")
|
||||
|
||||
" Arch Inventory file
|
||||
call TestExtension('arch', '.arch-inventory', '')
|
||||
call TestExtension('arch', '=tagging-method', '')
|
||||
call TestExtension("arch", ".arch-inventory", "")
|
||||
call TestExtension("arch", "=tagging-method", "")
|
||||
|
||||
" ART*Enterprise (formerly ART-IM)
|
||||
call TestExtension('art', 'foobar.art', '')
|
||||
call TestExtension("art", "foobar.art", "")
|
||||
|
||||
" AsciiDoc
|
||||
call TestExtension('asciidoc', 'foobar.asciidoc', '')
|
||||
call TestExtension('asciidoc', 'foobar.adoc', '')
|
||||
call TestExtension("asciidoc", "foobar.asciidoc", "")
|
||||
call TestExtension("asciidoc", "foobar.adoc", "")
|
||||
|
||||
" ASN.1
|
||||
call TestExtension('asn', 'foobar.asn', '')
|
||||
call TestExtension('asn', 'foobar.asn1', '')
|
||||
call TestExtension("asn", "foobar.asn", "")
|
||||
call TestExtension("asn", "foobar.asn1", "")
|
||||
|
||||
" Active Server Pages (with Visual Basic Script)
|
||||
call TestExtension('aspvbs', 'foobar.asa', '')
|
||||
let g:filetype_asa = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'foobar.asa', '')
|
||||
call TestExtension("aspvbs", "foobar.asa", "")
|
||||
let g:filetype_asa = "fizfuz"
|
||||
call TestExtension("fizfuz", "foobar.asa", "")
|
||||
|
||||
" Active Server Pages (with Perl or Visual Basic Script)
|
||||
call TestExtension('aspvbs', 'vbs.asp', "")
|
||||
call TestExtension('aspperl', 'perl.asp', "<Job ID=\"DropFiles\">\n<script language=\"PerlScript\">\n</script>\n</Job>")
|
||||
let g:filetype_asp = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.asp', '')
|
||||
call TestExtension("aspvbs", "vbs.asp", "")
|
||||
call TestExtension("aspperl", "perl.asp", "<Job ID=\"DropFiles\">\n<script language=\"PerlScript\">\n</script>\n</Job>")
|
||||
let g:filetype_asp = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.asp", "")
|
||||
|
||||
|
||||
" Grub (must be before catch *.lst)
|
||||
call TestExtension('grub', '/boot/grub/menu.lst', '')
|
||||
call TestExtension('grub', '/media/foobar/boot/grub/menu.lst', '')
|
||||
call TestExtension('grub', '/boot/grub/grub.conf', '')
|
||||
call TestExtension('grub', '/media/foobar/boot/grub/grub.conf', '')
|
||||
call TestExtension('grub', '/etc/grub.conf', '')
|
||||
call TestExtension('grub', '/media/foobar/etc/grub.conf', '')
|
||||
call TestExtension("grub", "/boot/grub/menu.lst", "")
|
||||
call TestExtension("grub", "/media/foobar/boot/grub/menu.lst", "")
|
||||
call TestExtension("grub", "/boot/grub/grub.conf", "")
|
||||
call TestExtension("grub", "/media/foobar/boot/grub/grub.conf", "")
|
||||
call TestExtension("grub", "/etc/grub.conf", "")
|
||||
call TestExtension("grub", "/media/foobar/etc/grub.conf", "")
|
||||
|
||||
" Assembly (all kinds)
|
||||
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
|
||||
@@ -155,93 +155,127 @@ call TestExtension('grub', '/media/foobar/etc/grub.conf', '')
|
||||
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
|
||||
|
||||
" Macro (VAX)
|
||||
call TestExtension('vmasm', 'foobar.mar', '')
|
||||
call TestExtension("vmasm", "foobar.mar", "")
|
||||
|
||||
" Atlas
|
||||
call TestExtension('atlas', 'foobar.atl', '')
|
||||
call TestExtension('atlas', 'foobar.as', '')
|
||||
call TestExtension("atlas", "foobar.atl", "")
|
||||
call TestExtension("atlas", "foobar.as", "")
|
||||
|
||||
" Autoit v3
|
||||
call TestExtension('autoit', 'foobar.au3', '')
|
||||
call TestExtension("autoit", "foobar.au3", "")
|
||||
|
||||
" Autohotkey
|
||||
call TestExtension('autohotkey', 'foobar.ahk', '')
|
||||
call TestExtension("autohotkey", "foobar.ahk", "")
|
||||
|
||||
" Automake
|
||||
call TestExtension('automake', 'Makefile.am', '')
|
||||
call TestExtension('automake', 'makefile.am', '')
|
||||
call TestExtension('automake', 'GNUmakefile.am', '')
|
||||
call TestExtension("automake", "Makefile.am", "")
|
||||
call TestExtension("automake", "makefile.am", "")
|
||||
call TestExtension("automake", "GNUmakefile.am", "")
|
||||
|
||||
" Autotest .at files are actually m4
|
||||
call TestExtension('m4', 'foobar.at', '')
|
||||
call TestExtension("m4", "foobar.at", "")
|
||||
|
||||
" Avenue
|
||||
call TestExtension('ave', 'foobar.ave', '')
|
||||
call TestExtension("ave", "foobar.ave", "")
|
||||
|
||||
" Awk
|
||||
call TestExtension('awk', 'foobar.awk', '')
|
||||
call TestExtension("awk", "foobar.awk", "")
|
||||
|
||||
" C++
|
||||
call TestExtension("c", "foobar.c", "")
|
||||
call TestExtension("cpp", "foobar.cxx", "")
|
||||
call TestExtension("cpp", "foobar.c++", "")
|
||||
call TestExtension("cpp", "foobar.hh", "")
|
||||
call TestExtension("cpp", "foobar.hxx", "")
|
||||
call TestExtension("cpp", "foobar.hpp", "")
|
||||
call TestExtension("cpp", "foobar.ipp", "")
|
||||
call TestExtension("cpp", "foobar.moc", "")
|
||||
call TestExtension("cpp", "foobar.tcc", "")
|
||||
call TestExtension("cpp", "foobar.inl", "")
|
||||
|
||||
" vim-polyglot only
|
||||
call TestExtension('blade', 'test.blade.php', '')
|
||||
call TestExtension('yaml.ansible', 'playbook.yml', '')
|
||||
call TestExtension('yaml.ansible', 'host_vars/foobar', '')
|
||||
call TestExtension('yaml.ansible', 'handlers.foobar.yaml', '')
|
||||
call TestExtension('yaml.ansible', 'requirements.yaml', '')
|
||||
call TestExtension('ps1xml', 'foobar.ps1xml', '')
|
||||
call TestExtension('terraform', 'terraform.tf', '')
|
||||
call TestExtension("blade", "test.blade.php", "")
|
||||
call TestExtension("yaml.ansible", "playbook.yml", "")
|
||||
call TestExtension("yaml.ansible", "host_vars/foobar", "")
|
||||
call TestExtension("yaml.ansible", "handlers.foobar.yaml", "")
|
||||
call TestExtension("yaml.ansible", "requirements.yaml", "")
|
||||
call TestExtension("ps1xml", "foobar.ps1xml", "")
|
||||
call TestExtension("terraform", "terraform.tf", "")
|
||||
|
||||
call TestExtension('idris2', 'foobar.idr', '')
|
||||
call TestExtension('idris', 'foobar.idr', "pkgs : List String\npkgs = [\"NCurses\", \"Readline\"]")
|
||||
let g:filetype_idr = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.idr', '')
|
||||
call TestExtension("idris2", "foobar.idr", "")
|
||||
call TestExtension("idris", "foobar.idr", "pkgs : List String\npkgs = [\"NCurses\", \"Readline\"]")
|
||||
let g:filetype_idr = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.idr", "")
|
||||
|
||||
" .m extension
|
||||
call TestExtension('octave', 'matlab.m', '')
|
||||
call TestExtension('objc', 'objc.m', "\n\n #import <Foundation/Foundation.h>")
|
||||
call TestExtension('octave', 'objc.m', "results_ub_times=zeros(2,2,M);\n%results pour la lower bound")
|
||||
call TestExtension('mma', 'mathematica.m', "newcase[ \"00003\" ];\n (* Hello world *)")
|
||||
call TestExtension('murphi', 'murphi.m', "type\n square: 1 .. 9")
|
||||
call TestExtension('murphi', 'murphi.m', "something\n--foobar")
|
||||
call TestExtension('octave', 'percentcomment.m', "hello world\n%foobar")
|
||||
call TestExtension('objc', 'comment.m', "\n/* Hello world */")
|
||||
let g:filetype_m = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.m', '')
|
||||
call TestExtension("octave", "matlab.m", "")
|
||||
call TestExtension("objc", "objc.m", "\n\n #import <Foundation/Foundation.h>")
|
||||
call TestExtension("octave", "objc.m", "results_ub_times=zeros(2,2,M);\n%results pour la lower bound")
|
||||
call TestExtension("mma", "mathematica.m", "newcase[ \"00003\" ];\n (* Hello world *)")
|
||||
call TestExtension("murphi", "murphi.m", "type\n square: 1 .. 9")
|
||||
call TestExtension("murphi", "murphi.m", "something\n--foobar")
|
||||
call TestExtension("octave", "percentcomment.m", "hello world\n%foobar")
|
||||
call TestExtension("objc", "comment.m", "\n/* Hello world */")
|
||||
let g:filetype_m = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.m", "")
|
||||
|
||||
" .fs extension
|
||||
call TestExtension('forth', 'empty.fs', '')
|
||||
call TestExtension('fsharp', 'fsharp.fs', "let myInt = 5")
|
||||
call TestExtension('glsl', 'glsl.fs', "//#version 120\nvoid main() {}")
|
||||
let g:filetype_fs = 'fizfuz'
|
||||
call TestExtension('fizfuz', 'fizfuz.fs', '')
|
||||
call TestExtension("forth", "empty.fs", "")
|
||||
call TestExtension("fsharp", "fsharp.fs", "let myInt = 5")
|
||||
call TestExtension("glsl", "glsl.fs", "//#version 120\nvoid main() {}")
|
||||
let g:filetype_fs = "fizfuz"
|
||||
call TestExtension("fizfuz", "fizfuz.fs", "")
|
||||
|
||||
" .re extension
|
||||
call TestExtension('reason', 'empty.re', '')
|
||||
call TestExtension('cpp', 'cpp.re', '#include "config.h"')
|
||||
call TestExtension('cpp', 'cpp2.re', '#ifdef HAVE_CONFIG_H')
|
||||
call TestExtension('cpp', 'cpp3.re', '#define YYCTYPE unsigned char')
|
||||
call TestExtension('reason', 'react.re', 'ReasonReact.Router.push("");')
|
||||
call TestExtension("reason", "empty.re", "")
|
||||
call TestExtension("cpp", "cpp.re", "#include \"config.h\"")
|
||||
call TestExtension("cpp", "cpp2.re", "#ifdef HAVE_CONFIG_H")
|
||||
call TestExtension("cpp", "cpp3.re", "#define YYCTYPE unsigned char")
|
||||
call TestExtension("reason", "react.re", "ReasonReact.Router.push('');")
|
||||
|
||||
" Idris
|
||||
call TestExtension('idris', 'lowercase.idr', '--idris1')
|
||||
call TestExtension('idris', 'uppercase.idr', '--Idris1')
|
||||
call TestExtension('idris', 'start-space-l.idr', '-- idris1')
|
||||
call TestExtension('idris', 'start-space-u.idr', '-- Idris1')
|
||||
call TestExtension('idris', 'two-spaces-l.idr', '-- idris 1')
|
||||
call TestExtension('idris', 'two-spaces-u.idr', '-- Idris 1')
|
||||
"call TestExtension('idris', 'mypkg.ipkg', 'package mypkg\n\npkgs = pruviloj, lightyear')
|
||||
call TestExtension('idris', 'use-type-prov.idr', '%language TypeProviders')
|
||||
call TestExtension('idris', 'use-elab-refl.idr', '%language ElabReflection')
|
||||
call TestExtension('idris', 'access-modifier.idr', '%access export\n\npublic export\nMyTest : Type-> Type\n\nfact : Nat -> Nat')
|
||||
call TestExtension('idris2', 'lowercase.idr', '--idris2')
|
||||
call TestExtension('idris2', 'uppercase.idr', '--Idris2')
|
||||
call TestExtension('idris2', 'start-space-l.idr', '-- idris2')
|
||||
call TestExtension('idris2', 'start-space-u.idr', '-- Idris2')
|
||||
call TestExtension('idris2', 'two-spaces-l.idr', '-- idris 2')
|
||||
call TestExtension('idris2', 'two-spaces-u.idr', '-- Idris 2')
|
||||
call TestExtension('idris2', 'mypkg.ipkg', 'package mypkg\n\ndepends = effects')
|
||||
call TestExtension('idris2', 'use-post-proj.idr', '%language PostfixProjections')
|
||||
" .bas extension
|
||||
call TestExtension("vbnet", "vb.vb", "")
|
||||
call TestExtension("basic", "empty.bas", "")
|
||||
call TestExtension("vb", "vb1.bas", "Attribute VB_Name = \"Class1\"")
|
||||
call TestExtension("vb", "vb2.bas", "VERSION 5.00\nBegin VB.Form Form1")
|
||||
call TestExtension("vb", "vb2.bas", "VERSION 5.00\nBegin VB.Form Form1")
|
||||
call TestExtension("vb", "vb.sba", "")
|
||||
call TestExtension("vb", "vb.vbs", "")
|
||||
call TestExtension("vb", "vb.dsm", "")
|
||||
call TestExtension("vb", "vb.dsm", "")
|
||||
call TestExtension("vb", "vb.ctl", "")
|
||||
|
||||
" Literate Idris
|
||||
call TestExtension('lidris', 'lidris-1.lidr', "Some test plaintext\n\n> --idris1\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
call TestExtension('lidris2', 'lidris-2.lidr', "Some test plaintext\n\n> --idris2\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
" .idr extension
|
||||
call TestExtension("idris", "lowercase.idr", "--idris1")
|
||||
call TestExtension("idris", "uppercase.idr", "--Idris1")
|
||||
call TestExtension("idris", "start-space-l.idr", "-- idris1")
|
||||
call TestExtension("idris", "start-space-u.idr", "-- Idris1")
|
||||
call TestExtension("idris", "two-spaces-l.idr", "-- idris 1")
|
||||
call TestExtension("idris", "two-spaces-u.idr", "-- Idris 1")
|
||||
"call TestExtension("idris", "mypkg.ipkg", "package mypkg\n\npkgs = pruviloj, lightyear")
|
||||
call TestExtension("idris", "use-type-prov.idr", "%language TypeProviders")
|
||||
call TestExtension("idris", "use-elab-refl.idr", "%language ElabReflection")
|
||||
call TestExtension("idris", "access-modifier.idr", "%access export\n\npublic export\nMyTest : Type-> Type\n\nfact : Nat -> Nat")
|
||||
call TestExtension("idris2", "lowercase.idr", "--idris2")
|
||||
call TestExtension("idris2", "uppercase.idr", "--Idris2")
|
||||
call TestExtension("idris2", "start-space-l.idr", "-- idris2")
|
||||
call TestExtension("idris2", "start-space-u.idr", "-- Idris2")
|
||||
call TestExtension("idris2", "two-spaces-l.idr", "-- idris 2")
|
||||
call TestExtension("idris2", "two-spaces-u.idr", "-- Idris 2")
|
||||
call TestExtension("idris2", "mypkg.ipkg", "package mypkg\n\ndepends = effects")
|
||||
call TestExtension("idris2", "use-post-proj.idr", "%language PostfixProjections")
|
||||
|
||||
" .lidr extension
|
||||
call TestExtension("lidris", "lidris-1.lidr", "Some test plaintext\n\n> --idris1\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
call TestExtension("lidris2", "lidris-2.lidr", "Some test plaintext\n\n> --idris2\n> myfact : Nat -> Nat\n> myfact Z = 1\n> myfact (S k) = (S k) * myfact k\n\nMore plaintext")
|
||||
|
||||
|
||||
" .h extension
|
||||
call TestExtension("objcpp", "foo.h", "@interface MTNavigationController : UINavigationController")
|
||||
call TestExtension("cpp", "foo.h", "")
|
||||
let g:c_syntax_for_h = 1
|
||||
call TestExtension("objc", "foo.h", "@interface MTNavigationController : UINavigationController")
|
||||
call TestExtension("c", "foo.h", "")
|
||||
unlet g:c_syntax_for_h
|
||||
let g:ch_syntax_for_h = 1
|
||||
call TestExtension("ch", "foo.h", "")
|
||||
|
||||
@@ -45,8 +45,8 @@ call TestFiletype('autoit')
|
||||
call TestFiletype('ave')
|
||||
call TestFiletype('awk')
|
||||
call TestFiletype('reason')
|
||||
call TestFiletype('c')
|
||||
call TestFiletype('cpp')
|
||||
call TestFiletype('c')
|
||||
call TestFiletype('caddyfile')
|
||||
call TestFiletype('carp')
|
||||
call TestFiletype('clojure')
|
||||
@@ -228,3 +228,5 @@ call TestFiletype('zephir')
|
||||
call TestFiletype('zir')
|
||||
call TestFiletype('zig')
|
||||
call TestFiletype('trasys')
|
||||
call TestFiletype('basic')
|
||||
call TestFiletype('vb')
|
||||
|
||||
170
syntax/basic.vim
Normal file
170
syntax/basic.vim
Normal file
@@ -0,0 +1,170 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'basic') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: BASIC
|
||||
" Maintainer: Allan Kelly <allan@fruitloaf.co.uk>
|
||||
" Last Change: 2011 Dec 25 by Thilo Six
|
||||
|
||||
" First version based on Micro$soft QBASIC circa 1989, as documented in
|
||||
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
|
||||
" This syntax file not a complete implementation yet. Send suggestions to the
|
||||
" maintainer.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" A bunch of useful BASIC keywords
|
||||
syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
|
||||
syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute
|
||||
syn keyword basicStatement CHAIN chain Chain CHDIR chdir Chdir
|
||||
syn keyword basicStatement CIRCLE circle Circle CLEAR clear Clear
|
||||
syn keyword basicStatement CLOSE close Close CLS cls Cls COLOR color Color
|
||||
syn keyword basicStatement COM com Com COMMON common Common
|
||||
syn keyword basicStatement CONST const Const DATA data Data
|
||||
syn keyword basicStatement DECLARE declare Declare DEF def Def
|
||||
syn keyword basicStatement DEFDBL defdbl Defdbl DEFINT defint Defint
|
||||
syn keyword basicStatement DEFLNG deflng Deflng DEFSNG defsng Defsng
|
||||
syn keyword basicStatement DEFSTR defstr Defstr DIM dim Dim
|
||||
syn keyword basicStatement DO do Do LOOP loop Loop
|
||||
syn keyword basicStatement DRAW draw Draw END end End
|
||||
syn keyword basicStatement ENVIRON environ Environ ERASE erase Erase
|
||||
syn keyword basicStatement ERROR error Error EXIT exit Exit
|
||||
syn keyword basicStatement FIELD field Field FILES files Files
|
||||
syn keyword basicStatement FOR for For NEXT next Next
|
||||
syn keyword basicStatement FUNCTION function Function GET get Get
|
||||
syn keyword basicStatement GOSUB gosub Gosub GOTO goto Goto
|
||||
syn keyword basicStatement IF if If THEN then Then ELSE else Else
|
||||
syn keyword basicStatement INPUT input Input INPUT# input# Input#
|
||||
syn keyword basicStatement IOCTL ioctl Ioctl KEY key Key
|
||||
syn keyword basicStatement KILL kill Kill LET let Let
|
||||
syn keyword basicStatement LINE line Line LOCATE locate Locate
|
||||
syn keyword basicStatement LOCK lock Lock UNLOCK unlock Unlock
|
||||
syn keyword basicStatement LPRINT lprint Lprint USING using Using
|
||||
syn keyword basicStatement LSET lset Lset MKDIR mkdir Mkdir
|
||||
syn keyword basicStatement NAME name Name ON on On
|
||||
syn keyword basicStatement ERROR error Error OPEN open Open
|
||||
syn keyword basicStatement OPTION option Option BASE base Base
|
||||
syn keyword basicStatement OUT out Out PAINT paint Paint
|
||||
syn keyword basicStatement PALETTE palette Palette PCOPY pcopy Pcopy
|
||||
syn keyword basicStatement PEN pen Pen PLAY play Play
|
||||
syn keyword basicStatement PMAP pmap Pmap POKE poke Poke
|
||||
syn keyword basicStatement PRESET preset Preset PRINT print Print
|
||||
syn keyword basicStatement PRINT# print# Print# USING using Using
|
||||
syn keyword basicStatement PSET pset Pset PUT put Put
|
||||
syn keyword basicStatement RANDOMIZE randomize Randomize READ read Read
|
||||
syn keyword basicStatement REDIM redim Redim RESET reset Reset
|
||||
syn keyword basicStatement RESTORE restore Restore RESUME resume Resume
|
||||
syn keyword basicStatement RETURN return Return RMDIR rmdir Rmdir
|
||||
syn keyword basicStatement RSET rset Rset RUN run Run
|
||||
syn keyword basicStatement SEEK seek Seek SELECT select Select
|
||||
syn keyword basicStatement CASE case Case SHARED shared Shared
|
||||
syn keyword basicStatement SHELL shell Shell SLEEP sleep Sleep
|
||||
syn keyword basicStatement SOUND sound Sound STATIC static Static
|
||||
syn keyword basicStatement STOP stop Stop STRIG strig Strig
|
||||
syn keyword basicStatement SUB sub Sub SWAP swap Swap
|
||||
syn keyword basicStatement SYSTEM system System TIMER timer Timer
|
||||
syn keyword basicStatement TROFF troff Troff TRON tron Tron
|
||||
syn keyword basicStatement TYPE type Type UNLOCK unlock Unlock
|
||||
syn keyword basicStatement VIEW view View WAIT wait Wait
|
||||
syn keyword basicStatement WHILE while While WEND wend Wend
|
||||
syn keyword basicStatement WIDTH width Width WINDOW window Window
|
||||
syn keyword basicStatement WRITE write Write DATE$ date$ Date$
|
||||
syn keyword basicStatement MID$ mid$ Mid$ TIME$ time$ Time$
|
||||
|
||||
syn keyword basicFunction ABS abs Abs ASC asc Asc
|
||||
syn keyword basicFunction ATN atn Atn CDBL cdbl Cdbl
|
||||
syn keyword basicFunction CINT cint Cint CLNG clng Clng
|
||||
syn keyword basicFunction COS cos Cos CSNG csng Csng
|
||||
syn keyword basicFunction CSRLIN csrlin Csrlin CVD cvd Cvd
|
||||
syn keyword basicFunction CVDMBF cvdmbf Cvdmbf CVI cvi Cvi
|
||||
syn keyword basicFunction CVL cvl Cvl CVS cvs Cvs
|
||||
syn keyword basicFunction CVSMBF cvsmbf Cvsmbf EOF eof Eof
|
||||
syn keyword basicFunction ERDEV erdev Erdev ERL erl Erl
|
||||
syn keyword basicFunction ERR err Err EXP exp Exp
|
||||
syn keyword basicFunction FILEATTR fileattr Fileattr FIX fix Fix
|
||||
syn keyword basicFunction FRE fre Fre FREEFILE freefile Freefile
|
||||
syn keyword basicFunction INP inp Inp INSTR instr Instr
|
||||
syn keyword basicFunction INT int Int LBOUND lbound Lbound
|
||||
syn keyword basicFunction LEN len Len LOC loc Loc
|
||||
syn keyword basicFunction LOF lof Lof LOG log Log
|
||||
syn keyword basicFunction LPOS lpos Lpos PEEK peek Peek
|
||||
syn keyword basicFunction PEN pen Pen POINT point Point
|
||||
syn keyword basicFunction POS pos Pos RND rnd Rnd
|
||||
syn keyword basicFunction SADD sadd Sadd SCREEN screen Screen
|
||||
syn keyword basicFunction SEEK seek Seek SETMEM setmem Setmem
|
||||
syn keyword basicFunction SGN sgn Sgn SIN sin Sin
|
||||
syn keyword basicFunction SPC spc Spc SQR sqr Sqr
|
||||
syn keyword basicFunction STICK stick Stick STRIG strig Strig
|
||||
syn keyword basicFunction TAB tab Tab TAN tan Tan
|
||||
syn keyword basicFunction UBOUND ubound Ubound VAL val Val
|
||||
syn keyword basicFunction VALPTR valptr Valptr VALSEG valseg Valseg
|
||||
syn keyword basicFunction VARPTR varptr Varptr VARSEG varseg Varseg
|
||||
syn keyword basicFunction CHR$ Chr$ chr$ COMMAND$ command$ Command$
|
||||
syn keyword basicFunction DATE$ date$ Date$ ENVIRON$ environ$ Environ$
|
||||
syn keyword basicFunction ERDEV$ erdev$ Erdev$ HEX$ hex$ Hex$
|
||||
syn keyword basicFunction INKEY$ inkey$ Inkey$ INPUT$ input$ Input$
|
||||
syn keyword basicFunction IOCTL$ ioctl$ Ioctl$ LCASES$ lcases$ Lcases$
|
||||
syn keyword basicFunction LAFT$ laft$ Laft$ LTRIM$ ltrim$ Ltrim$
|
||||
syn keyword basicFunction MID$ mid$ Mid$ MKDMBF$ mkdmbf$ Mkdmbf$
|
||||
syn keyword basicFunction MKD$ mkd$ Mkd$ MKI$ mki$ Mki$
|
||||
syn keyword basicFunction MKL$ mkl$ Mkl$ MKSMBF$ mksmbf$ Mksmbf$
|
||||
syn keyword basicFunction MKS$ mks$ Mks$ OCT$ oct$ Oct$
|
||||
syn keyword basicFunction RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$
|
||||
syn keyword basicFunction SPACE$ space$ Space$ STR$ str$ Str$
|
||||
syn keyword basicFunction STRING$ string$ String$ TIME$ time$ Time$
|
||||
syn keyword basicFunction UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$
|
||||
syn keyword basicTodo contained TODO
|
||||
|
||||
"integer number, or floating point number without a dot.
|
||||
syn match basicNumber "\<\d\+\>"
|
||||
"floating point number, with dot
|
||||
syn match basicNumber "\<\d\+\.\d*\>"
|
||||
"floating point number, starting with a dot
|
||||
syn match basicNumber "\.\d\+\>"
|
||||
|
||||
" String and Character contstants
|
||||
syn match basicSpecial contained "\\\d\d\d\|\\."
|
||||
syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial
|
||||
|
||||
syn region basicComment start="REM" end="$" contains=basicTodo
|
||||
syn region basicComment start="^[ \t]*'" end="$" contains=basicTodo
|
||||
syn region basicLineNumber start="^\d" end="\s"
|
||||
syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
|
||||
" Used with OPEN statement
|
||||
syn match basicFilenumber "#\d\+"
|
||||
"syn sync ccomment basicComment
|
||||
" syn match basicMathsOperator "[<>+\*^/\\=-]"
|
||||
syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR"
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link basicLabel Label
|
||||
hi def link basicConditional Conditional
|
||||
hi def link basicRepeat Repeat
|
||||
hi def link basicLineNumber Comment
|
||||
hi def link basicNumber Number
|
||||
hi def link basicError Error
|
||||
hi def link basicStatement Statement
|
||||
hi def link basicString String
|
||||
hi def link basicComment Comment
|
||||
hi def link basicSpecial Special
|
||||
hi def link basicTodo Todo
|
||||
hi def link basicFunction Identifier
|
||||
hi def link basicTypeSpecifier Type
|
||||
hi def link basicFilenumber basicTypeSpecifier
|
||||
"hi basicMathsOperator term=bold cterm=bold gui=bold
|
||||
|
||||
|
||||
let b:current_syntax = "basic"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
369
syntax/vb.vim
Normal file
369
syntax/vb.vim
Normal file
@@ -0,0 +1,369 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'visual-basic') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Visual Basic
|
||||
" Maintainer: Tim Chase <vb.vim@tim.thechases.com>
|
||||
" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
|
||||
" (tried multiple times to contact, but email bounced)
|
||||
" Last Change:
|
||||
" 2005 May 25 Synched with work by Thomas Barthel
|
||||
" 2004 May 30 Added a few keywords
|
||||
|
||||
" This was thrown together after seeing numerous requests on the
|
||||
" VIM and VIM-DEV mailing lists. It is by no means complete.
|
||||
" Send comments, suggestions and requests to the maintainer.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" VB is case insensitive
|
||||
syn case ignore
|
||||
|
||||
syn keyword vbConditional If Then ElseIf Else Select Case
|
||||
|
||||
syn keyword vbOperator AddressOf And ByRef ByVal Eqv Imp In
|
||||
syn keyword vbOperator Is Like Mod Not Or To Xor
|
||||
|
||||
syn match vbOperator "[()+.,\-/*=&]"
|
||||
syn match vbOperator "[<>]=\="
|
||||
syn match vbOperator "<>"
|
||||
syn match vbOperator "\s\+_$"
|
||||
|
||||
syn keyword vbBoolean True False
|
||||
syn keyword vbConst Null Nothing
|
||||
|
||||
syn keyword vbRepeat Do For ForEach Loop Next
|
||||
syn keyword vbRepeat Step To Until Wend While
|
||||
|
||||
syn keyword vbEvents AccessKeyPress Activate ActiveRowChanged
|
||||
syn keyword vbEvents AfterAddFile AfterChangeFileName AfterCloseFile
|
||||
syn keyword vbEvents AfterColEdit AfterColUpdate AfterDelete
|
||||
syn keyword vbEvents AfterInsert AfterLabelEdit AfterRemoveFile
|
||||
syn keyword vbEvents AfterUpdate AfterWriteFile AmbientChanged
|
||||
syn keyword vbEvents ApplyChanges Associate AsyncProgress
|
||||
syn keyword vbEvents AsyncReadComplete AsyncReadProgress AxisActivated
|
||||
syn keyword vbEvents AxisLabelActivated AxisLabelSelected
|
||||
syn keyword vbEvents AxisLabelUpdated AxisSelected AxisTitleActivated
|
||||
syn keyword vbEvents AxisTitleSelected AxisTitleUpdated AxisUpdated
|
||||
syn keyword vbEvents BeforeClick BeforeColEdit BeforeColUpdate
|
||||
syn keyword vbEvents BeforeConnect BeforeDelete BeforeInsert
|
||||
syn keyword vbEvents BeforeLabelEdit BeforeLoadFile BeforeUpdate
|
||||
syn keyword vbEvents BeginRequest BeginTrans ButtonClick
|
||||
syn keyword vbEvents ButtonCompleted ButtonDropDown ButtonGotFocus
|
||||
syn keyword vbEvents ButtonLostFocus CallbackKeyDown Change Changed
|
||||
syn keyword vbEvents ChartActivated ChartSelected ChartUpdated Click
|
||||
syn keyword vbEvents Close CloseQuery CloseUp ColEdit ColResize
|
||||
syn keyword vbEvents Collapse ColumnClick CommitTrans Compare
|
||||
syn keyword vbEvents ConfigChageCancelled ConfigChanged
|
||||
syn keyword vbEvents ConfigChangedCancelled Connect ConnectionRequest
|
||||
syn keyword vbEvents CurrentRecordChanged DECommandAdded
|
||||
syn keyword vbEvents DECommandPropertyChanged DECommandRemoved
|
||||
syn keyword vbEvents DEConnectionAdded DEConnectionPropertyChanged
|
||||
syn keyword vbEvents DEConnectionRemoved DataArrival DataChanged
|
||||
syn keyword vbEvents DataUpdated DateClicked DblClick Deactivate
|
||||
syn keyword vbEvents DevModeChange DeviceArrival DeviceOtherEvent
|
||||
syn keyword vbEvents DeviceQueryRemove DeviceQueryRemoveFailed
|
||||
syn keyword vbEvents DeviceRemoveComplete DeviceRemovePending
|
||||
syn keyword vbEvents Disconnect DisplayChanged Dissociate
|
||||
syn keyword vbEvents DoGetNewFileName Done DonePainting DownClick
|
||||
syn keyword vbEvents DragDrop DragOver DropDown EditProperty EditQuery
|
||||
syn keyword vbEvents EndRequest EnterCell EnterFocus ExitFocus Expand
|
||||
syn keyword vbEvents FontChanged FootnoteActivated FootnoteSelected
|
||||
syn keyword vbEvents FootnoteUpdated Format FormatSize GotFocus
|
||||
syn keyword vbEvents HeadClick HeightChanged Hide InfoMessage
|
||||
syn keyword vbEvents IniProperties InitProperties Initialize
|
||||
syn keyword vbEvents ItemActivated ItemAdded ItemCheck ItemClick
|
||||
syn keyword vbEvents ItemReloaded ItemRemoved ItemRenamed
|
||||
syn keyword vbEvents ItemSeletected KeyDown KeyPress KeyUp LeaveCell
|
||||
syn keyword vbEvents LegendActivated LegendSelected LegendUpdated
|
||||
syn keyword vbEvents LinkClose LinkError LinkExecute LinkNotify
|
||||
syn keyword vbEvents LinkOpen Load LostFocus MouseDown MouseMove
|
||||
syn keyword vbEvents MouseUp NodeCheck NodeClick OLECompleteDrag
|
||||
syn keyword vbEvents OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData
|
||||
syn keyword vbEvents OLEStartDrag ObjectEvent ObjectMove OnAddNew
|
||||
syn keyword vbEvents OnComm Paint PanelClick PanelDblClick PathChange
|
||||
syn keyword vbEvents PatternChange PlotActivated PlotSelected
|
||||
syn keyword vbEvents PlotUpdated PointActivated PointLabelActivated
|
||||
syn keyword vbEvents PointLabelSelected PointLabelUpdated PointSelected
|
||||
syn keyword vbEvents PointUpdated PowerQuerySuspend PowerResume
|
||||
syn keyword vbEvents PowerStatusChanged PowerSuspend ProcessTag
|
||||
syn keyword vbEvents ProcessingTimeout QueryChangeConfig QueryClose
|
||||
syn keyword vbEvents QueryComplete QueryCompleted QueryTimeout
|
||||
syn keyword vbEvents QueryUnload ReadProperties RepeatedControlLoaded
|
||||
syn keyword vbEvents RepeatedControlUnloaded Reposition
|
||||
syn keyword vbEvents RequestChangeFileName RequestWriteFile Resize
|
||||
syn keyword vbEvents ResultsChanged RetainedProject RollbackTrans
|
||||
syn keyword vbEvents RowColChange RowCurrencyChange RowResize
|
||||
syn keyword vbEvents RowStatusChanged Scroll SelChange SelectionChanged
|
||||
syn keyword vbEvents SendComplete SendProgress SeriesActivated
|
||||
syn keyword vbEvents SeriesSelected SeriesUpdated SettingChanged Show
|
||||
syn keyword vbEvents SplitChange Start StateChanged StatusUpdate
|
||||
syn keyword vbEvents SysColorsChanged Terminate TimeChanged Timer
|
||||
syn keyword vbEvents TitleActivated TitleSelected TitleUpdated
|
||||
syn keyword vbEvents UnboundAddData UnboundDeleteRow
|
||||
syn keyword vbEvents UnboundGetRelativeBookmark UnboundReadData
|
||||
syn keyword vbEvents UnboundWriteData Unformat Unload UpClick Updated
|
||||
syn keyword vbEvents UserEvent Validate ValidationError
|
||||
syn keyword vbEvents VisibleRecordChanged WillAssociate WillChangeData
|
||||
syn keyword vbEvents WillDissociate WillExecute WillUpdateRows
|
||||
syn keyword vbEvents WriteProperties
|
||||
|
||||
|
||||
syn keyword vbFunction Abs Array Asc AscB AscW Atn Avg BOF CBool CByte
|
||||
syn keyword vbFunction CCur CDate CDbl CInt CLng CSng CStr CVDate CVErr
|
||||
syn keyword vbFunction CVar CallByName Cdec Choose Chr ChrB ChrW Command
|
||||
syn keyword vbFunction Cos Count CreateObject CurDir DDB Date DateAdd
|
||||
syn keyword vbFunction DateDiff DatePart DateSerial DateValue Day Dir
|
||||
syn keyword vbFunction DoEvents EOF Environ Error Exp FV FileAttr
|
||||
syn keyword vbFunction FileDateTime FileLen FilterFix Fix Format
|
||||
syn keyword vbFunction FormatCurrency FormatDateTime FormatNumber
|
||||
syn keyword vbFunction FormatPercent FreeFile GetAllStrings GetAttr
|
||||
syn keyword vbFunction GetAutoServerSettings GetObject GetSetting Hex
|
||||
syn keyword vbFunction Hour IIf IMEStatus IPmt InStr Input InputB
|
||||
syn keyword vbFunction InputBox InstrB Int IsArray IsDate IsEmpty IsError
|
||||
syn keyword vbFunction IsMissing IsNull IsNumeric IsObject Join LBound
|
||||
syn keyword vbFunction LCase LOF LTrim Left LeftB Len LenB LoadPicture
|
||||
syn keyword vbFunction LoadResData LoadResPicture LoadResString Loc Log
|
||||
syn keyword vbFunction MIRR Max Mid MidB Min Minute Month MonthName
|
||||
syn keyword vbFunction MsgBox NPV NPer Now Oct PPmt PV Partition Pmt
|
||||
syn keyword vbFunction QBColor RGB RTrim Rate Replace Right RightB Rnd
|
||||
syn keyword vbFunction Round SLN SYD Second Seek Sgn Shell Sin Space Spc
|
||||
syn keyword vbFunction Split Sqr StDev StDevP Str StrComp StrConv
|
||||
syn keyword vbFunction StrReverse String Sum Switch Tab Tan Time
|
||||
syn keyword vbFunction TimeSerial TimeValue Timer Trim TypeName UBound
|
||||
syn keyword vbFunction UCase Val Var VarP VarType Weekday WeekdayName
|
||||
syn keyword vbFunction Year
|
||||
|
||||
syn keyword vbMethods AboutBox Accept Activate Add AddCustom AddFile
|
||||
syn keyword vbMethods AddFromFile AddFromGuid AddFromString
|
||||
syn keyword vbMethods AddFromTemplate AddItem AddNew AddToAddInToolbar
|
||||
syn keyword vbMethods AddToolboxProgID Append AppendAppendChunk
|
||||
syn keyword vbMethods AppendChunk Arrange Assert AsyncRead BatchUpdate
|
||||
syn keyword vbMethods BeginQueryEdit BeginTrans Bind BuildPath
|
||||
syn keyword vbMethods CanPropertyChange Cancel CancelAsyncRead
|
||||
syn keyword vbMethods CancelBatch CancelUpdate CaptureImage CellText
|
||||
syn keyword vbMethods CellValue Circle Clear ClearFields ClearSel
|
||||
syn keyword vbMethods ClearSelCols ClearStructure Clone Close Cls
|
||||
syn keyword vbMethods ColContaining CollapseAll ColumnSize CommitTrans
|
||||
syn keyword vbMethods CompactDatabase Compose Connect Copy CopyFile
|
||||
syn keyword vbMethods CopyFolder CopyQueryDef Count CreateDatabase
|
||||
syn keyword vbMethods CreateDragImage CreateEmbed CreateField
|
||||
syn keyword vbMethods CreateFolder CreateGroup CreateIndex CreateLink
|
||||
syn keyword vbMethods CreatePreparedStatement CreatePropery CreateQuery
|
||||
syn keyword vbMethods CreateQueryDef CreateRelation CreateTableDef
|
||||
syn keyword vbMethods CreateTextFile CreateToolWindow CreateUser
|
||||
syn keyword vbMethods CreateWorkspace Customize Cut Delete
|
||||
syn keyword vbMethods DeleteColumnLabels DeleteColumns DeleteFile
|
||||
syn keyword vbMethods DeleteFolder DeleteLines DeleteRowLabels
|
||||
syn keyword vbMethods DeleteRows DeselectAll DesignerWindow DoVerb Drag
|
||||
syn keyword vbMethods Draw DriveExists Edit EditCopy EditPaste EndDoc
|
||||
syn keyword vbMethods EnsureVisible EstablishConnection Execute Exists
|
||||
syn keyword vbMethods Expand Export ExportReport ExtractIcon Fetch
|
||||
syn keyword vbMethods FetchVerbs FileExists Files FillCache Find
|
||||
syn keyword vbMethods FindFirst FindItem FindLast FindNext FindPrevious
|
||||
syn keyword vbMethods FolderExists Forward GetAbsolutePathName
|
||||
syn keyword vbMethods GetBaseName GetBookmark GetChunk GetClipString
|
||||
syn keyword vbMethods GetData GetDrive GetDriveName GetFile GetFileName
|
||||
syn keyword vbMethods GetFirstVisible GetFolder GetFormat GetHeader
|
||||
syn keyword vbMethods GetLineFromChar GetNumTicks GetParentFolderName
|
||||
syn keyword vbMethods GetRows GetSelectedPart GetSelection
|
||||
syn keyword vbMethods GetSpecialFolder GetTempName GetText
|
||||
syn keyword vbMethods GetVisibleCount GoBack GoForward Hide HitTest
|
||||
syn keyword vbMethods HoldFields Idle Import InitializeLabels Insert
|
||||
syn keyword vbMethods InsertColumnLabels InsertColumns InsertFile
|
||||
syn keyword vbMethods InsertLines InsertObjDlg InsertRowLabels
|
||||
syn keyword vbMethods InsertRows Item Keys KillDoc Layout Line Lines
|
||||
syn keyword vbMethods LinkExecute LinkPoke LinkRequest LinkSend Listen
|
||||
syn keyword vbMethods LoadFile LoadResData LoadResPicture LoadResString
|
||||
syn keyword vbMethods LogEvent MakeCompileFile MakeCompiledFile
|
||||
syn keyword vbMethods MakeReplica MoreResults Move MoveData MoveFile
|
||||
syn keyword vbMethods MoveFirst MoveFolder MoveLast MoveNext
|
||||
syn keyword vbMethods MovePrevious NavigateTo NewPage NewPassword
|
||||
syn keyword vbMethods NextRecordset OLEDrag OnAddinsUpdate OnConnection
|
||||
syn keyword vbMethods OnDisconnection OnStartupComplete Open
|
||||
syn keyword vbMethods OpenAsTextStream OpenConnection OpenDatabase
|
||||
syn keyword vbMethods OpenQueryDef OpenRecordset OpenResultset OpenURL
|
||||
syn keyword vbMethods Overlay PSet PaintPicture PastSpecialDlg Paste
|
||||
syn keyword vbMethods PeekData Play Point PopulatePartial PopupMenu
|
||||
syn keyword vbMethods Print PrintForm PrintReport PropertyChanged Quit
|
||||
syn keyword vbMethods Raise RandomDataFill RandomFillColumns
|
||||
syn keyword vbMethods RandomFillRows ReFill Read ReadAll ReadFromFile
|
||||
syn keyword vbMethods ReadLine ReadProperty Rebind Refresh RefreshLink
|
||||
syn keyword vbMethods RegisterDatabase ReleaseInstance Reload Remove
|
||||
syn keyword vbMethods RemoveAddInFromToolbar RemoveAll RemoveItem Render
|
||||
syn keyword vbMethods RepairDatabase ReplaceLine Reply ReplyAll Requery
|
||||
syn keyword vbMethods ResetCustom ResetCustomLabel ResolveName
|
||||
syn keyword vbMethods RestoreToolbar Resync Rollback RollbackTrans
|
||||
syn keyword vbMethods RowBookmark RowContaining RowTop Save SaveAs
|
||||
syn keyword vbMethods SaveFile SaveToFile SaveToOle1File SaveToolbar
|
||||
syn keyword vbMethods Scale ScaleX ScaleY Scroll SelPrint SelectAll
|
||||
syn keyword vbMethods SelectPart Send SendData Set SetAutoServerSettings
|
||||
syn keyword vbMethods SetData SetFocus SetOption SetSelection SetSize
|
||||
syn keyword vbMethods SetText SetViewport Show ShowColor ShowFont
|
||||
syn keyword vbMethods ShowHelp ShowOpen ShowPrinter ShowSave
|
||||
syn keyword vbMethods ShowWhatsThis SignOff SignOn Size Skip SkipLine
|
||||
syn keyword vbMethods Span Split SplitContaining StartLabelEdit
|
||||
syn keyword vbMethods StartLogging Stop Synchronize Tag TextHeight
|
||||
syn keyword vbMethods TextWidth ToDefaults Trace TwipsToChartPart
|
||||
syn keyword vbMethods TypeByChartType URLFor Update UpdateControls
|
||||
syn keyword vbMethods UpdateRecord UpdateRow Upto ValidateControls Value
|
||||
syn keyword vbMethods WhatsThisMode Write WriteBlankLines WriteLine
|
||||
syn keyword vbMethods WriteProperty WriteTemplate ZOrder
|
||||
syn keyword vbMethods rdoCreateEnvironment rdoRegisterDataSource
|
||||
|
||||
syn keyword vbStatement Alias AppActivate As Base Beep Begin Call ChDir
|
||||
syn keyword vbStatement ChDrive Close Const Date Declare DefBool DefByte
|
||||
syn keyword vbStatement DefCur DefDate DefDbl DefDec DefInt DefLng DefObj
|
||||
syn keyword vbStatement DefSng DefStr DefVar Deftype DeleteSetting Dim Do
|
||||
syn keyword vbStatement Each ElseIf End Enum Erase Error Event Exit
|
||||
syn keyword vbStatement Explicit FileCopy For ForEach Function Get GoSub
|
||||
syn keyword vbStatement GoTo Gosub Implements Kill LSet Let Lib LineInput
|
||||
syn keyword vbStatement Load Lock Loop Mid MkDir Name Next On OnError Open
|
||||
syn keyword vbStatement Option Preserve Private Property Public Put RSet
|
||||
syn keyword vbStatement RaiseEvent Randomize ReDim Redim Reset Resume
|
||||
syn keyword vbStatement Return RmDir SavePicture SaveSetting Seek SendKeys
|
||||
syn keyword vbStatement Sendkeys Set SetAttr Static Step Stop Sub Time
|
||||
syn keyword vbStatement Type Unload Unlock Until Wend While Width With
|
||||
syn keyword vbStatement Write
|
||||
|
||||
syn keyword vbKeyword As Binary ByRef ByVal Date Empty Error Friend Get
|
||||
syn keyword vbKeyword Input Is Len Lock Me Mid New Nothing Null On
|
||||
syn keyword vbKeyword Option Optional ParamArray Print Private Property
|
||||
syn keyword vbKeyword Public PublicNotCreateable OnNewProcessSingleUse
|
||||
syn keyword vbKeyword InSameProcessMultiUse GlobalMultiUse Resume Seek
|
||||
syn keyword vbKeyword Set Static Step String Time WithEvents
|
||||
|
||||
syn keyword vbTodo contained TODO
|
||||
|
||||
"Datatypes
|
||||
syn keyword vbTypes Boolean Byte Currency Date Decimal Double Empty
|
||||
syn keyword vbTypes Integer Long Object Single String Variant
|
||||
|
||||
"VB defined values
|
||||
syn keyword vbDefine dbBigInt dbBinary dbBoolean dbByte dbChar
|
||||
syn keyword vbDefine dbCurrency dbDate dbDecimal dbDouble dbFloat
|
||||
syn keyword vbDefine dbGUID dbInteger dbLong dbLongBinary dbMemo
|
||||
syn keyword vbDefine dbNumeric dbSingle dbText dbTime dbTimeStamp
|
||||
syn keyword vbDefine dbVarBinary
|
||||
|
||||
"VB defined values
|
||||
syn keyword vbDefine vb3DDKShadow vb3DFace vb3DHighlight vb3DLight
|
||||
syn keyword vbDefine vb3DShadow vbAbort vbAbortRetryIgnore
|
||||
syn keyword vbDefine vbActiveBorder vbActiveTitleBar vbAlias
|
||||
syn keyword vbDefine vbApplicationModal vbApplicationWorkspace
|
||||
syn keyword vbDefine vbAppTaskManager vbAppWindows vbArchive vbArray
|
||||
syn keyword vbDefine vbBack vbBinaryCompare vbBlack vbBlue vbBoolean
|
||||
syn keyword vbDefine vbButtonFace vbButtonShadow vbButtonText vbByte
|
||||
syn keyword vbDefine vbCalGreg vbCalHijri vbCancel vbCr vbCritical
|
||||
syn keyword vbDefine vbCrLf vbCurrency vbCyan vbDatabaseCompare
|
||||
syn keyword vbDefine vbDataObject vbDate vbDecimal vbDefaultButton1
|
||||
syn keyword vbDefine vbDefaultButton2 vbDefaultButton3 vbDefaultButton4
|
||||
syn keyword vbDefine vbDesktop vbDirectory vbDouble vbEmpty vbError
|
||||
syn keyword vbDefine vbExclamation vbFirstFourDays vbFirstFullWeek
|
||||
syn keyword vbDefine vbFirstJan1 vbFormCode vbFormControlMenu
|
||||
syn keyword vbDefine vbFormFeed vbFormMDIForm vbFriday vbFromUnicode
|
||||
syn keyword vbDefine vbGrayText vbGreen vbHidden vbHide vbHighlight
|
||||
syn keyword vbDefine vbHighlightText vbHiragana vbIgnore vbIMEAlphaDbl
|
||||
syn keyword vbDefine vbIMEAlphaSng vbIMEDisable vbIMEHiragana
|
||||
syn keyword vbDefine vbIMEKatakanaDbl vbIMEKatakanaSng vbIMEModeAlpha
|
||||
syn keyword vbDefine vbIMEModeAlphaFull vbIMEModeDisable
|
||||
syn keyword vbDefine vbIMEModeHangul vbIMEModeHangulFull
|
||||
syn keyword vbDefine vbIMEModeHiragana vbIMEModeKatakana
|
||||
syn keyword vbDefine vbIMEModeKatakanaHalf vbIMEModeNoControl
|
||||
syn keyword vbDefine vbIMEModeOff vbIMEModeOn vbIMENoOp vbIMEOff
|
||||
syn keyword vbDefine vbIMEOn vbInactiveBorder vbInactiveCaptionText
|
||||
syn keyword vbDefine vbInactiveTitleBar vbInfoBackground vbInformation
|
||||
syn keyword vbDefine vbInfoText vbInteger vbKatakana vbKey0 vbKey1
|
||||
syn keyword vbDefine vbKey2 vbKey3 vbKey4 vbKey5 vbKey6 vbKey7 vbKey8
|
||||
syn keyword vbDefine vbKey9 vbKeyA vbKeyAdd vbKeyB vbKeyBack vbKeyC
|
||||
syn keyword vbDefine vbKeyCancel vbKeyCapital vbKeyClear vbKeyControl
|
||||
syn keyword vbDefine vbKeyD vbKeyDecimal vbKeyDelete vbKeyDivide
|
||||
syn keyword vbDefine vbKeyDown vbKeyE vbKeyEnd vbKeyEscape vbKeyExecute
|
||||
syn keyword vbDefine vbKeyF vbKeyF1 vbKeyF10 vbKeyF11 vbKeyF12 vbKeyF13
|
||||
syn keyword vbDefine vbKeyF14 vbKeyF15 vbKeyF16 vbKeyF2 vbKeyF3 vbKeyF4
|
||||
syn keyword vbDefine vbKeyF5 vbKeyF6 vbKeyF7 vbKeyF8 vbKeyF9 vbKeyG
|
||||
syn keyword vbDefine vbKeyH vbKeyHelp vbKeyHome vbKeyI vbKeyInsert
|
||||
syn keyword vbDefine vbKeyJ vbKeyK vbKeyL vbKeyLButton vbKeyLeft vbKeyM
|
||||
syn keyword vbDefine vbKeyMButton vbKeyMenu vbKeyMultiply vbKeyN
|
||||
syn keyword vbDefine vbKeyNumlock vbKeyNumpad0 vbKeyNumpad1
|
||||
syn keyword vbDefine vbKeyNumpad2 vbKeyNumpad3 vbKeyNumpad4
|
||||
syn keyword vbDefine vbKeyNumpad5 vbKeyNumpad6 vbKeyNumpad7
|
||||
syn keyword vbDefine vbKeyNumpad8 vbKeyNumpad9 vbKeyO vbKeyP
|
||||
syn keyword vbDefine vbKeyPageDown vbKeyPageUp vbKeyPause vbKeyPrint
|
||||
syn keyword vbDefine vbKeyQ vbKeyR vbKeyRButton vbKeyReturn vbKeyRight
|
||||
syn keyword vbDefine vbKeyS vbKeySelect vbKeySeparator vbKeyShift
|
||||
syn keyword vbDefine vbKeySnapshot vbKeySpace vbKeySubtract vbKeyT
|
||||
syn keyword vbDefine vbKeyTab vbKeyU vbKeyUp vbKeyV vbKeyW vbKeyX
|
||||
syn keyword vbDefine vbKeyY vbKeyZ vbLf vbLong vbLowerCase vbMagenta
|
||||
syn keyword vbDefine vbMaximizedFocus vbMenuBar vbMenuText
|
||||
syn keyword vbDefine vbMinimizedFocus vbMinimizedNoFocus vbMonday
|
||||
syn keyword vbDefine vbMsgBox vbMsgBoxHelpButton vbMsgBoxRight
|
||||
syn keyword vbDefine vbMsgBoxRtlReading vbMsgBoxSetForeground
|
||||
syn keyword vbDefine vbMsgBoxText vbNarrow vbNewLine vbNo vbNormal
|
||||
syn keyword vbDefine vbNormalFocus vbNormalNoFocus vbNull vbNullChar
|
||||
syn keyword vbDefine vbNullString vbObject vbObjectError vbOK
|
||||
syn keyword vbDefine vbOKCancel vbOKOnly vbProperCase vbQuestion
|
||||
syn keyword vbDefine vbReadOnly vbRed vbRetry vbRetryCancel vbSaturday
|
||||
syn keyword vbDefine vbScrollBars vbSingle vbString vbSunday vbSystem
|
||||
syn keyword vbDefine vbSystemModal vbTab vbTextCompare vbThursday
|
||||
syn keyword vbDefine vbTitleBarText vbTuesday vbUnicode vbUpperCase
|
||||
syn keyword vbDefine vbUseSystem vbUseSystemDayOfWeek vbVariant
|
||||
syn keyword vbDefine vbVerticalTab vbVolume vbWednesday vbWhite vbWide
|
||||
syn keyword vbDefine vbWindowBackground vbWindowFrame vbWindowText
|
||||
syn keyword vbDefine vbYellow vbYes vbYesNo vbYesNoCancel
|
||||
|
||||
"Numbers
|
||||
"integer number, or floating point number without a dot.
|
||||
syn match vbNumber "\<\d\+\>"
|
||||
"floating point number, with dot
|
||||
syn match vbNumber "\<\d\+\.\d*\>"
|
||||
"floating point number, starting with a dot
|
||||
syn match vbNumber "\.\d\+\>"
|
||||
"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
|
||||
"syn match vbNumber ":[[:xdigit:]]\+"
|
||||
"syn match vbNumber "[-+]\=\<\d\+\>"
|
||||
syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
|
||||
syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
|
||||
syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
|
||||
|
||||
" String and Character contstants
|
||||
syn region vbString start=+"+ end=+"\|$+
|
||||
syn region vbComment start="\(^\|\s\)REM\s" end="$" contains=vbTodo
|
||||
syn region vbComment start="\(^\|\s\)\'" end="$" contains=vbTodo
|
||||
syn match vbLineNumber "^\d\+\(\s\|$\)"
|
||||
syn match vbTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
|
||||
syn match vbTypeSpecifier "#[a-zA-Z0-9]"me=e-1
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link vbBoolean Boolean
|
||||
hi def link vbLineNumber Comment
|
||||
hi def link vbComment Comment
|
||||
hi def link vbConditional Conditional
|
||||
hi def link vbConst Constant
|
||||
hi def link vbDefine Constant
|
||||
hi def link vbError Error
|
||||
hi def link vbFunction Identifier
|
||||
hi def link vbIdentifier Identifier
|
||||
hi def link vbNumber Number
|
||||
hi def link vbFloat Float
|
||||
hi def link vbMethods PreProc
|
||||
hi def link vbOperator Operator
|
||||
hi def link vbRepeat Repeat
|
||||
hi def link vbString String
|
||||
hi def link vbStatement Statement
|
||||
hi def link vbKeyword Statement
|
||||
hi def link vbEvents Special
|
||||
hi def link vbTodo Todo
|
||||
hi def link vbTypes Type
|
||||
hi def link vbTypeSpecifier Type
|
||||
|
||||
|
||||
let b:current_syntax = "vb"
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user