summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--autoload/vifm/edit.vim18
-rw-r--r--autoload/vifm/globals.vim35
-rw-r--r--ftdetect/polyglot.vim7
-rw-r--r--ftplugin/mail_vifm.vim66
-rw-r--r--ftplugin/vifm-cmdedit.vim23
-rw-r--r--ftplugin/vifm-edit.vim17
-rw-r--r--ftplugin/vifm-rename.vim62
-rw-r--r--ftplugin/vifm.vim50
-rw-r--r--packages.yaml13
-rwxr-xr-xscripts/build26
-rwxr-xr-xscripts/test12
-rw-r--r--scripts/test_filetypes.vim189
-rw-r--r--syntax/vifm.vim485
14 files changed, 218 insertions, 788 deletions
diff --git a/README.md b/README.md
index 3cb5e1bc..c35272a2 100644
--- a/README.md
+++ b/README.md
@@ -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-->156<!--/Package Count--> packages it consists of.
+- It **installs and updates 120+ times faster** than the <!--Package Count-->155<!--/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).
@@ -189,7 +189,6 @@ If you need full functionality of any plugin, please use it directly with your p
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax)
- [velocity](https://github.com/lepture/vim-velocity) (syntax, indent)
-- [vifm](https://github.com/vifm/vifm.vim) (syntax, autoload, ftplugin)
- [vue](https://github.com/posva/vim-vue) (syntax, indent, ftplugin)
- [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (syntax)
- [xml](https://github.com/amadeus/vim-xml) (syntax)
diff --git a/autoload/vifm/edit.vim b/autoload/vifm/edit.vim
deleted file mode 100644
index 4d97c23b..00000000
--- a/autoload/vifm/edit.vim
+++ /dev/null
@@ -1,18 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" common functions for vifm command-line editing buffer filetype plugins
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: August 18, 2013
-
-" Prepare buffer
-function! vifm#edit#Init()
- " Mappings for quick leaving the buffer (behavior similar to Command line
- " buffer in Vim)
- nnoremap <buffer> <cr> :copy 0 \| wq<cr>
- imap <buffer> <cr> <esc><cr>
-
- " Start buffer editing in insert mode
- startinsert
-endfunction
-
-endif
diff --git a/autoload/vifm/globals.vim b/autoload/vifm/globals.vim
deleted file mode 100644
index 5e74abde..00000000
--- a/autoload/vifm/globals.vim
+++ /dev/null
@@ -1,35 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" common functions for vifm plugin related to globals
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: November 03, 2018
-
-" Initializes global variables to defaults unless they are already set
-function! vifm#globals#Init()
- if !exists('g:vifm_exec')
- let g:vifm_exec = 'vifm'
- endif
-
- if !exists('g:vifm_exec_args')
- let g:vifm_exec_args = ''
- endif
-
- if !exists('g:vifm_term')
- if has('win32')
- if filereadable('C:\Windows\system32\cmd.exe')
- let g:vifm_term = 'C:\Windows\system32\cmd.exe /C'
- else
- " If don't find use the integrate shell it work too
- let g:vifm_term = ''
- endif
- else
- let g:vifm_term = 'xterm -e'
- endif
- endif
-
- if !exists('g:vifm_embed_term')
- let g:vifm_embed_term = has('gui_running')
- endif
-endfunction
-
-endif
diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim
index c1a3fe50..016f1542 100644
--- a/ftdetect/polyglot.vim
+++ b/ftdetect/polyglot.vim
@@ -1139,13 +1139,6 @@ if index(g:polyglot_disabled, 'vcl') == -1
au BufNewFile,BufRead *.vcl set ft=vcl
endif
-if index(g:polyglot_disabled, 'vifm') == -1
- au BufNewFile,BufRead *.vifm set ft=vifm
- au BufNewFile,BufRead *vifm/colors/* set ft=vifm
- au BufNewFile,BufRead vifmrc set ft=vifm
- au BufNewFile,BufRead vifm.rename* set ft=vifm-rename
-endif
-
if index(g:polyglot_disabled, 'velocity') == -1
au BufNewFile,BufRead *.vm set ft=velocity
endif
diff --git a/ftplugin/mail_vifm.vim b/ftplugin/mail_vifm.vim
deleted file mode 100644
index 4896b892..00000000
--- a/ftplugin/mail_vifm.vim
+++ /dev/null
@@ -1,66 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" Mail file type extension to pick files for attachments via vifm
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: June 22, 2020
-
-" Insert attachment picked via vifm after 'Subject' header
-function! s:AddMailAttachments()
- call vifm#globals#Init()
-
- " XXX: similar code is in plugins/vifm.vim, but it's different in details
- let l:listf = tempname()
-
- if !has('nvim')
- if has('gui_running')
- execute 'silent !' g:vifm_term g:vifm_exec
- \ '--choose-files' shellescape(l:listf, 1)
- \ g:vifm_exec_args
- else
- execute 'silent !' g:vifm_exec
- \ '--choose-files' shellescape(l:listf, 1)
- \ g:vifm_exec_args
- endif
-
- redraw!
-
- call s:HandleRunResults(v:shell_error, l:listf)
- else
- " Work around handicapped neovim...
- let callback = { 'listf': l:listf }
- function! callback.on_exit(id, code, event)
- buffer #
- silent! bdelete! #
- call s:HandleRunResults(a:code, self.listf)
- endfunction
- enew
- call termopen(g:vifm_exec . ' --choose-files ' . shellescape(l:listf, 1)
- \. ' ' . g:vifm_exec_args, callback)
-
- startinsert
- endif
-endfunction
-
-function! s:HandleRunResults(exitcode, listf)
- if a:exitcode != 0
- echoerr 'Got non-zero code from vifm: ' . a:exitcode
- call delete(a:listf)
- return
- endif
-
- let l:insert_pos = search('^Subject:', 'nw')
-
- if filereadable(a:listf) && l:insert_pos != 0
- for line in readfile(a:listf)
- call append(l:insert_pos, 'Attach: '.escape(line, " "))
- let l:insert_pos += 1
- endfor
- endif
- call delete(a:listf)
-endfunction
-
-nnoremap <buffer> <silent> <localleader>a :call <sid>AddMailAttachments()<cr>
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif
diff --git a/ftplugin/vifm-cmdedit.vim b/ftplugin/vifm-cmdedit.vim
deleted file mode 100644
index 42487b34..00000000
--- a/ftplugin/vifm-cmdedit.vim
+++ /dev/null
@@ -1,23 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" vifm command-line editing buffer filetype plugin
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: August 18, 2013
-
-if exists("b:did_ftplugin")
- finish
-endif
-
-let b:did_ftplugin = 1
-
-" Behave as vifm script file
-runtime! ftplugin/vifm.vim
-
-" Use vifm script highlighting
-set syntax=vifm
-
-call vifm#edit#Init()
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif
diff --git a/ftplugin/vifm-edit.vim b/ftplugin/vifm-edit.vim
deleted file mode 100644
index e9362bf7..00000000
--- a/ftplugin/vifm-edit.vim
+++ /dev/null
@@ -1,17 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" vifm command-line editing buffer filetype plugin
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: August 18, 2013
-
-if exists("b:did_ftplugin")
- finish
-endif
-
-let b:did_ftplugin = 1
-
-call vifm#edit#Init()
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif
diff --git a/ftplugin/vifm-rename.vim b/ftplugin/vifm-rename.vim
deleted file mode 100644
index 02f6b3c5..00000000
--- a/ftplugin/vifm-rename.vim
+++ /dev/null
@@ -1,62 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" Filetype plugin for vifm rename buffer
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: October 05, 2014
-
-if exists("b:did_ftplugin")
- finish
-endif
-
-let b:did_ftplugin = 1
-
-" Copy list of original file names
-let s:files = getline(1, '$')
-
-" Closes window/tab/Vim when buffer is left alone in there
-function! s:QuitIfOnlyWindow()
- " Boil out if there is more than one window
- if winbufnr(2) != -1
- return
- endif
-
- " Just close tab with this single window or quit Vim with last tab
- if tabpagenr('$') == 1
- bdelete
- quit
- else
- close
- endif
-endfunction
-
-" Create a vertical split window for original file names and configure it
-belowright vsplit __VifmRenameOrig__
-enew
-call setline(1, s:files)
-setlocal buftype=nofile
-setlocal bufhidden=hide
-setlocal noswapfile
-setlocal nobuflisted
-setlocal cursorbind
-setlocal scrollbind
-setlocal nocursorline
-
-" Free now useless list of file names
-unlet s:files
-
-" Setup a hook in auxiliary local window to do not leave it alone, when it's
-" useless
-augroup VifmRenameAutoCmds
- autocmd! * <buffer>
- autocmd BufEnter <buffer> call s:QuitIfOnlyWindow()
-augroup END
-
-" Go back to the original window and ensure it will remain synchronized with
-" the auxiliary one
-wincmd w
-setlocal cursorbind
-setlocal scrollbind
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif
diff --git a/ftplugin/vifm.vim b/ftplugin/vifm.vim
deleted file mode 100644
index abae28b3..00000000
--- a/ftplugin/vifm.vim
+++ /dev/null
@@ -1,50 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" vifmrc filetype plugin
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: July 08, 2016
-" Based On: Vim file type file by Bram Moolenaar
-
-if exists("b:did_ftplugin")
- finish
-endif
-
-let b:did_ftplugin = 1
-
-let s:cpo_save = &cpo
-set cpo-=C
-
-let b:undo_ftplugin = "setlocal formatoptions< comments< textwidth< commentstring<"
-
-" Break comment lines but not other lines
-setlocal formatoptions-=t formatoptions+=croql
-
-" Set comment character
-setlocal comments=:\"
-
-" Format comments to be up to 78 characters long
-if &textwidth == 0
- setlocal textwidth=78
-endif
-
-" Comments start with a double quote
-setlocal commentstring=\"%s
-
-" Move around comments
-nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
-vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
-nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
-vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
-
-" Let the matchit plugin know what items can be matched.
-if exists("loaded_matchit")
- let b:match_ignorecase = 0
- let b:match_words = '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>'
-endif
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif
diff --git a/packages.yaml b/packages.yaml
index 657d2924..dc056fbf 100644
--- a/packages.yaml
+++ b/packages.yaml
@@ -1215,19 +1215,6 @@ filetypes:
- name: vcl
linguist: VCL
---
-name: vifm
-remote: vifm/vifm.vim
-filetypes:
-- name: vifm
- extensions:
- - vifm
- filenames:
- - vifmrc
- - '*vifm/colors/*'
-- name: vifm-rename
- filenames:
- - 'vifm.rename*'
----
name: velocity
remote: lepture/vim-velocity
filetypes:
diff --git a/scripts/build b/scripts/build
index f1e1a596..54285bfe 100755
--- a/scripts/build
+++ b/scripts/build
@@ -310,8 +310,34 @@ def generate_ftdetect
File.write('ftdetect/polyglot.vim', output)
end
+def generate_tests
+ output = <<~EOS
+ function! TestFiletype(filetype)
+ try
+ enew
+ exec 'set ft=' . a:filetype
+ catch
+ echo 'Error loading filetype ' . a:filetype . ':'
+ echo v:exception
+ echo v:throwpoint
+ exec ':cq!'
+ endtry
+ endfunction
+
+ EOS
+
+ for package in PACKAGES
+ for filetype in package.fetch("filetypes", [])
+ output << "call TestFiletype('#{filetype["name"]}')\n"
+ end
+ end
+
+ File.write('scripts/test_filetypes.vim', output)
+end
+
download
extract
generate_ftdetect
+generate_tests
puts(" Bye! Have a wonderful time!")
FileUtils.rm_rf("tmp")
diff --git a/scripts/test b/scripts/test
index 853d34b4..084d084a 100755
--- a/scripts/test
+++ b/scripts/test
@@ -2,18 +2,10 @@
set -e
-vim -N --startuptime /dev/stdout -u <(
+vim --clean -N -u <(
echo "filetype plugin indent on"
echo "syntax enable"
echo "let &rtp='$PWD,'.&rtp"
- cat ftdetect/polyglot.vim | grep -E 'set ft=[a-z-]+' -o | sort | uniq | awk -F '=' '{ print $2 }' | while read ft; do
- echo "try"
- echo " enew"
- echo " set ft=$ft"
- echo "catch"
- echo " echo v:exception"
- echo " exec ':cq!'"
- echo "endtry"
- done
+ echo "source scripts/test_filetypes.vim"
echo "exec ':q!'"
)
diff --git a/scripts/test_filetypes.vim b/scripts/test_filetypes.vim
new file mode 100644
index 00000000..2e9ddf4d
--- /dev/null
+++ b/scripts/test_filetypes.vim
@@ -0,0 +1,189 @@
+function! TestFiletype(filetype)
+ try
+ enew
+ exec 'set ft=' . a:filetype
+ catch
+ echo 'Error loading filetype ' . a:filetype . ':'
+ echo v:exception
+ echo v:throwpoint
+ exec ':cq!'
+ endtry
+endfunction
+
+call TestFiletype('asl')
+call TestFiletype('apiblueprint')
+call TestFiletype('applescript')
+call TestFiletype('arduino')
+call TestFiletype('asciidoc')
+call TestFiletype('autohotkey')
+call TestFiletype('c')
+call TestFiletype('cpp')
+call TestFiletype('caddyfile')
+call TestFiletype('carp')
+call TestFiletype('clojure')
+call TestFiletype('cmake')
+call TestFiletype('coffee')
+call TestFiletype('litcoffee')
+call TestFiletype('cryptol')
+call TestFiletype('crystal')
+call TestFiletype('ecrystal')
+call TestFiletype('csv')
+call TestFiletype('cucumber')
+call TestFiletype('cuesheet')
+call TestFiletype('dart')
+call TestFiletype('dhall')
+call TestFiletype('d')
+call TestFiletype('dcov')
+call TestFiletype('dd')
+call TestFiletype('ddoc')
+call TestFiletype('dsdl')
+call TestFiletype('Dockerfile')
+call TestFiletype('yaml.docker-compose')
+call TestFiletype('elixir')
+call TestFiletype('elixir')
+call TestFiletype('elm')
+call TestFiletype('ember-script')
+call TestFiletype('emblem')
+call TestFiletype('erlang')
+call TestFiletype('fennel')
+call TestFiletype('ferm')
+call TestFiletype('fish')
+call TestFiletype('fbs')
+call TestFiletype('fsharp')
+call TestFiletype('gdscript3')
+call TestFiletype('gitconfig')
+call TestFiletype('gitrebase')
+call TestFiletype('gitsendemail')
+call TestFiletype('gitcommit')
+call TestFiletype('glsl')
+call TestFiletype('gmpl')
+call TestFiletype('gnuplot')
+call TestFiletype('go')
+call TestFiletype('gomod')
+call TestFiletype('gohtmltmpl')
+call TestFiletype('graphql')
+call TestFiletype('groovy')
+call TestFiletype('haml')
+call TestFiletype('mustache')
+call TestFiletype('haproxy')
+call TestFiletype('haskell')
+call TestFiletype('haxe')
+call TestFiletype('hcl')
+call TestFiletype('hive')
+call TestFiletype('hive')
+call TestFiletype('html')
+call TestFiletype('i3config')
+call TestFiletype('icalendar')
+call TestFiletype('idris')
+call TestFiletype('ion')
+call TestFiletype('javascript')
+call TestFiletype('flow')
+call TestFiletype('Jenkinsfile')
+call TestFiletype('jinja.html')
+call TestFiletype('jq')
+call TestFiletype('json5')
+call TestFiletype('json')
+call TestFiletype('jsonnet')
+call TestFiletype('jst')
+call TestFiletype('javascriptreact')
+call TestFiletype('julia')
+call TestFiletype('kotlin')
+call TestFiletype('ledger')
+call TestFiletype('less')
+call TestFiletype('lilypond')
+call TestFiletype('livescript')
+call TestFiletype('llvm')
+call TestFiletype('tablegen')
+call TestFiletype('log')
+call TestFiletype('lua')
+call TestFiletype('mako')
+call TestFiletype('mma')
+call TestFiletype('markdown')
+call TestFiletype('markdown.mdx')
+call TestFiletype('meson')
+call TestFiletype('dosini')
+call TestFiletype('moon')
+call TestFiletype('nginx')
+call TestFiletype('nim')
+call TestFiletype('nix')
+call TestFiletype('objc')
+call TestFiletype('ocaml')
+call TestFiletype('omake')
+call TestFiletype('opam')
+call TestFiletype('oasis')
+call TestFiletype('octave')
+call TestFiletype('opencl')
+call TestFiletype('perl')
+call TestFiletype('sql')
+call TestFiletype('sql')
+call TestFiletype('cql')
+call TestFiletype('php')
+call TestFiletype('blade')
+call TestFiletype('plantuml')
+call TestFiletype('pony')
+call TestFiletype('powershell')
+call TestFiletype('ps1xml')
+call TestFiletype('proto')
+call TestFiletype('pug')
+call TestFiletype('puppet')
+call TestFiletype('embeddedpuppet')
+call TestFiletype('purescript')
+call TestFiletype('python')
+call TestFiletype('requirements')
+call TestFiletype('qmake')
+call TestFiletype('qml')
+call TestFiletype('r')
+call TestFiletype('rhelp')
+call TestFiletype('racket')
+call TestFiletype('ragel')
+call TestFiletype('raku')
+call TestFiletype('raml')
+call TestFiletype('razor')
+call TestFiletype('reason')
+call TestFiletype('rst')
+call TestFiletype('ruby')
+call TestFiletype('eruby')
+call TestFiletype('ruby')
+call TestFiletype('brewfile')
+call TestFiletype('rust')
+call TestFiletype('scala')
+call TestFiletype('sbt.scala')
+call TestFiletype('scss')
+call TestFiletype('sh')
+call TestFiletype('zsh')
+call TestFiletype('slim')
+call TestFiletype('slime')
+call TestFiletype('smt2')
+call TestFiletype('solidity')
+call TestFiletype('stylus')
+call TestFiletype('svelte')
+call TestFiletype('svg')
+call TestFiletype('swift')
+call TestFiletype('sxhkdrc')
+call TestFiletype('systemd')
+call TestFiletype('terraform')
+call TestFiletype('textile')
+call TestFiletype('thrift')
+call TestFiletype('tmux')
+call TestFiletype('toml')
+call TestFiletype('tptp')
+call TestFiletype('html.twig')
+call TestFiletype('xml.twig')
+call TestFiletype('typescript')
+call TestFiletype('typescriptreact')
+call TestFiletype('unison')
+call TestFiletype('v')
+call TestFiletype('vala')
+call TestFiletype('vbnet')
+call TestFiletype('vcl')
+call TestFiletype('velocity')
+call TestFiletype('vue')
+call TestFiletype('xdc')
+call TestFiletype('xml')
+call TestFiletype('xsl')
+call TestFiletype('yaml')
+call TestFiletype('yaml.ansible')
+call TestFiletype('helm')
+call TestFiletype('zephir')
+call TestFiletype('zig')
+call TestFiletype('zir')
diff --git a/syntax/vifm.vim b/syntax/vifm.vim
deleted file mode 100644
index 224cdf48..00000000
--- a/syntax/vifm.vim
+++ /dev/null
@@ -1,485 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
-
-" vifm syntax file
-" Maintainer: xaizek <xaizek@posteo.net>
-" Last Change: August 8, 2020
-" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
-
-if exists('b:current_syntax')
- finish
-endif
-
-let b:current_syntax = 'vifm'
-
-let s:cpo_save = &cpo
-set cpo-=C
-
-" General commands
-syntax keyword vifmCommand contained
- \ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
- \ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
- \ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
- \ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
- \ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
- \ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
- \ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
- \ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
- \ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
- \ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
- \ nextgroup=vifmArgs
-syntax keyword vifmCommandCN contained
- \ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
- \ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
- \ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
- \ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
- \ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
- \ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
- \ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
- \ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
- \ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
- \ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
- \ nextgroup=vifmArgsCN
-
-" commands that might be prepended to a command without changing everything else
-syntax keyword vifmPrefixCommands contained windo winrun
-
-" Map commands
-syntax keyword vifmMap contained dm[ap] dn[oremap] du[nmap] map mm[ap]
- \ mn[oremap] mu[nmap] nm[ap] nn[oremap] no[remap] nun[map] qm[ap] qn[oremap]
- \ qun[map] unm[ap] vm[ap] vn[oremap] vu[nmap]
- \ skipwhite nextgroup=vifmMapArgs
-syntax keyword vifmCMapAbbr contained ca[bbrev] cm[ap] cnorea[bbrev] cno[remap]
- \ cuna[bbrev] cu[nmap]
- \ skipwhite nextgroup=vifmCMapArgs
-
-" Other commands
-syntax keyword vifmAutocmdCommand contained au[tocmd] nextgroup=vifmAutoEvent
-syntax keyword vifmCdCommand contained cd
-syntax keyword vifmCmdCommand contained com[mand] nextgroup=vifmCmdCommandName
-syntax keyword vifmColoCommand contained colo[rscheme]
-syntax keyword vifmHiCommand contained hi[ghlight]
-syntax keyword vifmInvertCommand contained invert
-syntax keyword vifmLetCommand contained let
-syntax keyword vifmUnletCommand contained unl[et]
-syntax keyword vifmSetCommand contained se[t] setl[ocal] setg[lobal]
-syntax keyword vifmSoCommand contained so[urce]
-syntax keyword vifmMarkCommand contained ma[rk]
-syntax keyword vifmFtCommand contained filet[ype] filex[type] filev[iewer]
-syntax keyword vifmExprCommand contained if ec[ho] elsei[f] exe[cute]
-syntax keyword vifmNormalCommand contained norm[al]
- \ nextgroup=vifmColonSubcommand
-syntax match vifmPatternCommands contained /\<\(filter\(!\|\>\)\|select\(!\|\>\)\|unselect\>\)/ skipwhite
- \ nextgroup=vifmPattern
-
-" List of event names for autocommands (case insensitive)
-syntax case ignore
-syntax keyword vifmAutoEvent contained DirEnter nextgroup=vifmStatementC
-syntax case match
-
-" Builtin functions
-syntax match vifmBuiltinFunction
- \ '\(chooseopt\|expand\|executable\|extcached\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze('
-
-" Operators
-syntax match vifmOperator "\(==\|!=\|>=\?\|<=\?\|\.\|-\|+\|&&\|||\)" skipwhite
-
-" Highlight groups
-syntax keyword vifmHiArgs contained cterm ctermfg ctermbg
-syntax case ignore
-syntax keyword vifmHiGroups contained WildMenu Border Win CmdLine CurrLine
- \ OtherLine Directory Link Socket Device Executable Selected BrokenLink
- \ TopLine TopLineSel StatusLine JobLine SuggestBox Fifo ErrorMsg CmpMismatch
- \ AuxWin OtherWin TabLine TabLineSel TabNr TabNrSel HardLink LineNr OddLine
- \ User1 User2 User3 User4 User5 User6 User7 User8 User9
-syntax keyword vifmHiStyles contained
- \ bold underline reverse inverse standout italic none
-syntax keyword vifmHiColors contained black red green yellow blue magenta cyan
- \ white default lightblack lightred lightgreen lightyellow lightblue
- \ lightmagenta lightcyan lightwhite Grey0 NavyBlue DarkBlue Blue3 Blue3_2
- \ Blue1 DarkGreen DeepSkyBlue4 DeepSkyBlue4_2 DeepSkyBlue4_3 DodgerBlue3
- \ DodgerBlue2 Green4 SpringGreen4 Turquoise4 DeepSkyBlue3 DeepSkyBlue3_2
- \ DodgerBlue1 Green3 SpringGreen3 DarkCyan LightSeaGreen DeepSkyBlue2
- \ DeepSkyBlue1 Green3_2 SpringGreen3_2 SpringGreen2 Cyan3 DarkTurquoise
- \ Turquoise2 Green1 SpringGreen2_2 SpringGreen1 MediumSpringGreen Cyan2
- \ Cyan1 DarkRed DeepPink4 Purple4 Purple4_2 Purple3 BlueViolet Orange4
- \ Grey37 MediumPurple4 SlateBlue3 SlateBlue3_2 RoyalBlue1 Chartreuse4
- \ DarkSeaGreen4 PaleTurquoise4 SteelBlue SteelBlue3 CornflowerBlue
- \ Chartreuse3 DarkSeaGreen4_2 CadetBlue CadetBlue_2 SkyBlue3 SteelBlue1
- \ Chartreuse3_2 PaleGreen3 SeaGreen3 Aquamarine3 MediumTurquoise
- \ SteelBlue1_2 Chartreuse2 SeaGreen2 SeaGreen1 SeaGreen1_2 Aquamarine1
- \ DarkSlateGray2 DarkRed_2 DeepPink4_2 DarkMagenta DarkMagenta_2 DarkViolet
- \ Purple Orange4_2 LightPink4 Plum4 MediumPurple3 MediumPurple3_2 SlateBlue1
- \ Yellow4 Wheat4 Grey53 LightSlateGrey MediumPurple LightSlateBlue Yellow4_2
- \ DarkOliveGreen3 DarkSeaGreen LightSkyBlue3 LightSkyBlue3_2 SkyBlue2
- \ Chartreuse2_2 DarkOliveGreen3_2 PaleGreen3_2 DarkSeaGreen3 DarkSlateGray3
- \ SkyBlue1 Chartreuse1 LightGreen_2 LightGreen_3 PaleGreen1 Aquamarine1_2
- \ DarkSlateGray1 Red3 DeepPink4_3 MediumVioletRed Magenta3 DarkViolet_2
- \ Purple_2 DarkOrange3 IndianRed HotPink3 MediumOrchid3 MediumOrchid
- \ MediumPurple2 DarkGoldenrod LightSalmon3 RosyBrown Grey63 MediumPurple2_2
- \ MediumPurple1 Gold3 DarkKhaki NavajoWhite3 Grey69 LightSteelBlue3
- \ LightSteelBlue Yellow3 DarkOliveGreen3_3 DarkSeaGreen3_2 DarkSeaGreen2
- \ LightCyan3 LightSkyBlue1 GreenYellow DarkOliveGreen2 PaleGreen1_2
- \ DarkSeaGreen2_2 DarkSeaGreen1 PaleTurquoise1 Red3_2 DeepPink3 DeepPink3_2
- \ Magenta3_2 Magenta3_3 Magenta2 DarkOrange3_2 IndianRed_2 HotPink3_2
- \ HotPink2 Orchid MediumOrchid1 Orange3 LightSalmon3_2 LightPink3 Pink3
- \ Plum3 Violet Gold3_2 LightGoldenrod3 Tan MistyRose3 Thistle3 Plum2
- \ Yellow3_2 Khaki3 LightGoldenrod2 LightYellow3 Grey84 LightSteelBlue1
- \ Yellow2 DarkOliveGreen1 DarkOliveGreen1_2 DarkSeaGreen1_2 Honeydew2
- \ LightCyan1 Red1 DeepPink2 DeepPink1 DeepPink1_2 Magenta2_2 Magenta1
- \ OrangeRed1 IndianRed1 IndianRed1_2 HotPink HotPink_2 MediumOrchid1_2
- \ DarkOrange Salmon1 LightCoral PaleVioletRed1 Orchid2 Orchid1 Orange1
- \ SandyBrown LightSalmon1 LightPink1 Pink1 Plum1 Gold1 LightGoldenrod2_2
- \ LightGoldenrod2_3 NavajoWhite1 MistyRose1 Thistle1 Yellow1 LightGoldenrod1
- \ Khaki1 Wheat1 Cornsilk1 Grey100 Grey3 Grey7 Grey11 Grey15 Grey19 Grey23
- \ Grey27 Grey30 Grey35 Grey39 Grey42 Grey46 Grey50 Grey54 Grey58 Grey62
- \ Grey66 Grey70 Grey74 Grey78 Grey82 Grey85 Grey89 Grey93
-
-syntax case match
-
-" Options
-syntax keyword vifmOption contained aproposprg autochpos caseoptions cdpath cd
- \ chaselinks classify columns co confirm cf cpoptions cpo cvoptions
- \ deleteprg dotdirs dotfiles dirsize fastrun fillchars fcs findprg
- \ followlinks fusehome gdefault grepprg histcursor history hi hlsearch hls
- \ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls
- \ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu
- \ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf
- \ runexec scrollbind scb scrolloff sessionoptions ssop so sort sortgroups
- \ sortorder sortnumbers shell sh shellflagcmd shcf shortmess shm showtabline
- \ stal sizefmt slowfs smartcase scs statusline stl suggestoptions syncregs
- \ syscalls tablabel tabscope tabstop timefmt timeoutlen title tm trash
- \ trashdir ts tuioptions to undolevels ul vicmd viewcolumns vifminfo vimhelp
- \ vixcmd wildmenu wmnu wildstyle wordchars wrap wrapscan ws
-
-" Disabled boolean options
-syntax keyword vifmOption contained noautochpos nocf nochaselinks nodotfiles
- \ nofastrun nofollowlinks nohlsearch nohls noiec noignorecase noic
- \ noincsearch nois nolaststatus nols nolsview nomillerview nonumber nonu
- \ noquickview norelativenumber nornu noscrollbind noscb norunexec
- \ nosmartcase noscs nosortnumbers nosyscalls notitle notrash novimhelp
- \ nowildmenu nowmnu nowrap nowrapscan nows
-
-" Inverted boolean options
-syntax keyword vifmOption contained invautochpos invcf invchaselinks invdotfiles
- \ invfastrun invfollowlinks invhlsearch invhls inviec invignorecase invic
- \ invincsearch invis invlaststatus invls invlsview invmillerview invnumber
- \ invnu invquickview invrelativenumber invrnu invscrollbind invscb
- \ invrunexec invsmartcase invscs invsortnumbers invsyscalls invtitle
- \ invtrash invvimhelp invwildmenu invwmnu invwrap invwrapscan invws
-
-" Expressions
-syntax region vifmStatement start='^\(\s\|:\)*'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
- \ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
- \,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
- \,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
- \,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommandSt,vifmPrefixCommands
- \,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands
-" Contained statement with highlighting of angle-brace notation.
-syntax region vifmStatementCN start='\(\s\|:\)*'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
- \ contains=vifmCommandCN,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
- \,vifmFtCommandStN,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
- \,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
- \,vifmNotation,vifmCdCommandStN,vifmSetN,vifmArgument,vifmSoCommand
- \,vifmSoCommandStN,vifmInvertCommand,vifmInvertCommandStN,vifmPrefixCommands
- \,vifmLetCN
-" Contained statement without highlighting of angle-brace notation.
-syntax region vifmStatementC start='\(\s\|:\)*'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
- \ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
- \,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
- \,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
- \,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommand,vifmSoCommandSt
- \,vifmInvertCommand,vifmInvertCommandSt,vifmPrefixCommands
- \,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands,vifmLetC,vifmUnletC
-syntax region vifmCmdCommandSt start='^\(\s\|:\)*com\%[mand]\>'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
- \ contains=vifmCmdCommand,vifmComment,vifmInlineComment,vifmNotComment
-syntax region vifmCmdCommandName contained start='!\?\s\+[a-zA-Z]\+' end='\ze\s'
- \ skip='\(\s*\\\)\|\(\s*".*$\)'
- \ nextgroup=vifmCmdArgs
-syntax region vifmCmdArgs start='\(\s*\n\s*\\\)\?\s*\S\+'
- \ end='\s' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
- \ contained
- \ contains=vifmColonSubcommand,vifmComment
-syntax region vifmColoCommandSt start='^\(\s\|:\)*colo\%[rscheme]\>' end='$'
- \ keepend oneline contains=vifmColoCommand
-syntax region vifmInvertCommandSt start='\(\s\|:\)*invert\>' end='$\||'
- \ keepend oneline contains=vifmInvertCommand
-syntax region vifmInvertCommandStN start='\(\s\|:\)*invert\>' end='$\||'
- \ contained keepend oneline contains=vifmInvertCommand,vifmNotation
-syntax region vifmSoCommandSt start='\(\s\|:\)*so\%[urce]\>' end='$\||'
- \ keepend oneline contains=vifmSoCommand,vifmEnvVar,vifmStringInExpr
-syntax region vifmSoCommandStN start='\(\s\|:\)*so\%[urce]\>' end='$\||'
- \ contained keepend oneline
- \ contains=vifmSoCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
-syntax region vifmMarkCommandSt start='^\(\s\|:\)*ma\%[rk]\>' end='$' keepend
- \ oneline contains=vifmMarkCommand
-syntax region vifmCdCommandSt start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
- \ contains=vifmCdCommand,vifmEnvVar,vifmStringInExpr
-" Highlight for :cd command with highlighting of angle-brace notation.
-syntax region vifmCdCommandStN start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
- \ contained
- \ contains=vifmCdCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
-syntax region vifmFtCommandSt start='\(\s\|:\)*file[tvx]'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
- \ contains=vifmFtCommand,vifmComment,vifmFtBeginning
-syntax region vifmFtCommandStN start='\(\s\|:\)*file[tvx]'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\|\(<[cC][rR]>\)' keepend
- \ contains=vifmComment,vifmNotation,vifmFtBeginning
-syntax region vifmMapSt start='^\(\s\|:\)*\(map\|mm\%[ap]\|mn\%[oremap]\|mu\%[nmap]\|nm\%[ap]\|nn\%[oremap]\|no\%[remap]\|nun\%[map]\|qm\%[ap]\|qn\%[oremap]\|qun\%[map]\|unm\%[ap]\|vm\%[ap]\|vn\%[oremap]\|vu\%[nmap]\)'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
- \ contains=vifmMap
-syntax region vifmCMapSt
- \ start='^\(\s\|:\)*\(cm\%[ap]\|cno\%[remap]\|cu\%[nmap]\)'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
- \ contains=vifmCMapAbbr
-syntax region vifmExprCommandSt
- \ start='\<\(if\|ec\%[ho]\|elsei\%[f]\|exe\%[cute]\)\>'
- \ end='$\||'
- \ contains=vifmExprCommand,vifmString,vifmStringInExpr,vifmBuiltinFunction
- \,vifmOperator,vifmEnvVar,vifmNumber
-syntax region vifmNormalCommandSt start='\(\s\|:\)*norm\%[al]\>' end='$' keepend
- \ oneline
- \ contains=vifmNormalCommand,vifmComment
-syntax region vifmExecute start='!' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmNotation,vifmComment
-syntax region vifmMapArgs start='\ze\S\+'
- \ end='\ze.' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
- \ contained
- \ nextgroup=vifmMapArgList
-syntax region vifmCMapArgs start='\S\+'
- \ end='\n\s*\\' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
- \ contained
- \ contains=vifmMapLhs,vifmMapCRhs
-syntax region vifmMapLhs start='\S\+'
- \ end='\ze\s' skip='\(\s*\\\)\|\(\s*".*$\)'
- \ contained
- \ contains=vifmNotation,vifmComment
- \ nextgroup=vifmMapRhs
-syntax region vifmMapRhs start='.'
- \ end='\ze<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
- \ contained keepend
- \ contains=vifmNotation,vifmComment,vifmColonSubcommandN
- \ nextgroup=vifmMapRhs
-syntax region vifmMapCRhs start='\s'
- \ end='<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
- \ contained keepend
- \ contains=vifmNotation,vifmComment,vifmSubcommandN
-syntax region vifmColonSubcommand start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
- \ end='$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)'
- \ contained
- \ contains=vifmStatementC
-" Contained sub command with highlighting of angle-brace notation.
-syntax region vifmColonSubcommandN start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
- \ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
- \ contained
- \ contains=vifmStatementCN
-syntax region vifmSubcommandN start='\s*\(\s*\n\s*\\\)\?:\?\s*\S\+'
- \ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
- \ contained
- \ contains=vifmStatementCN
-" Non-empty pattern or form [!][{]{*.ext,*.e}[}], [!][/]/regex/[/][iI] or
-" <mime-type-globs>, possibly multi-line.
-" [!]/regexp/[iI]+
-syntax region vifmPattern contained
- \ start='!\?/\ze\(\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+/'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='/[iI]*\ze\s\|/\ze\S\+\s' keepend
- \ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
-" [!]//regexp//[iI]+
-syntax region vifmPattern contained
- \ start='!\?//\ze\(/[^/]\|\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+//'
- \ skip='/[^/]\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='//[iI]*' keepend
- \ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
-" [!]{regexp}
-syntax region vifmPattern contained
- \ start='!\?{[^}]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}' keepend
- \ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
-" [!]{{regexp}}
-syntax region vifmPattern contained
- \ start='!\?{{\ze.\{-}}}' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}}' keepend
- \ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
-" [!]<regexp>
-syntax region vifmPattern contained
- \ start='!\?<[^>]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='>' keepend
- \ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
-syntax match vifmNotPattern contained '!\?\({{}}\|\<//\>\|////\)'
-syntax region vifmHi
- \ start='^\(\s\|:\)*\<hi\%[ghlight]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
- \ end='$' keepend
- \ contains=vifmHiCommand,vifmHiArgs,vifmHiGroups,vifmHiStyles,vifmHiColors
- \,vifmNumber,vifmComment,vifmInlineComment,vifmNotComment,vifmHiClear
- \,vifmPattern
-syntax region vifmFtBeginning contained
- \ start='\<\(filet\%[ype]\|filext\%[ype]\|filev\%[iewer]\)\>\s\+\S'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
- \ end='\s' keepend
- \ contains=vifmFtCommand,vifmPattern
-
-" common highlight for :command arguments without highlighting of angle-bracket
-" notation
-syntax region vifmArgs start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
- \ contained
- \ contains=vifmStringInExpr
-" common highlight for :command arguments with highlighting of angle-bracket
-" notation
-syntax region vifmArgsCN start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
- \ contained
- \ contains=vifmStringInExpr,vifmNotation
-
-syntax region vifmSet
- \ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
- \,vifmSetAssignNS,vifmComment,vifmInlineComment,vifmNotComment
-syntax region vifmSetN
- \ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
- \,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
-syntax region vifmSet2 contained
- \ start='^\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
- \ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
- \,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
-
-" Highlight for =value part of :set arguments of form option=value
-
-" For single quoted string (check that it starts with =')
-syntax region vifmSetAssignSQS contained
- \ start="='" skip=+\\\\\|\\'+ end=+'+ keepend
- \ contains=vifmString
-" For double quoted string (check that it starts with =")
-syntax region vifmSetAssignDQS contained
- \ start='="' skip=+\\\\\|\\"+ end=+"+ keepend
- \ contains=vifmString
-" For not strings (check that it doesn't start with either =' or =")
-syntax region vifmSetAssignNS contained
- \ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
- \ extend
- \ contains=vifmNumber,vifmComment,vifmInlineComment
-" For not strings (check that it doesn't start with either =' or =")
-syntax region vifmSetAssignNSN contained
- \ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
- \ extend
- \ contains=vifmNumber,vifmComment,vifmInlineComment,vifmNotation
-
-" :let command with highlighting of angle-brace notation.
-syntax region vifmLet
- \ start='^\(\s\|:\)*\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
- \,vifmInlineComment,vifmNotComment
-" Contained :let command without highlighting of angle-brace notation.
-syntax region vifmLetC
- \ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
- \ keepend
- \ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
- \,vifmInlineComment,vifmNotComment,vifmBuiltinFunction
-" Contained :let command with highlighting of angle-brace notation.
-syntax region vifmLetCN
- \ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
- \ keepend
- \ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
- \,vifmInlineComment,vifmNotComment,vifmBuiltinFunction,vifmNotation
-syntax region vifmUnlet
- \ start='^\(\s\|:\)*\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
- \ keepend
- \ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
-syntax region vifmUnletC
- \ start='\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
- \ keepend
- \ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
-syntax region vifmString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+
-syntax region vifmString contained start=+='+hs=s+1 skip=+\\\\\|\\'+ end=+'+
-syntax region vifmStringInExpr contained start=+=\@<="+hs=s+1 skip=+\\\\\|\\"+
- \ end=+"+
-syntax region vifmStringInExpr contained start=+=\@<='+hs=s+1
- \ skip=+\\\\\|\\'\|''+ end=+'+
-syntax region vifmStringInExpr contained start=+[.( ]"+hs=s+1 skip=+\\\\\|\\"+
- \ end=+"+
-syntax region vifmStringInExpr contained start=+[.( ]'+hs=s+1
- \ skip=+\\\\\|\\'\|''+ end=+'+
-syntax region vifmArgument contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syntax region vifmArgument contained start=+'+ skip=+\\\\\|\\'\|''+ end=+'+
-syntax match vifmEnvVar contained /\$[0-9a-zA-Z_]\+/
-syntax match vifmNumber contained /\d\+/
-
-" Optional map arguments right after command name
-syntax match vifmMapArgList '\(<\(silent\|wait\)>\s*\)*' contained
- \ nextgroup=vifmMapLhs
-
-" Ange-bracket notation
-syntax case ignore
-syntax match vifmNotation '<\(esc\|cr\|space\|del\|nop\|\(s-\)\?tab\|home\|end\|left\|right\|up\|down\|bs\|delete\|insert\|pageup\|pagedown\|\([acms]-\)\?f\d\{1,2\}\|c-s-[a-z[\]^_]\|s-c-[a-z[\]^_]\|c-[a-z[\]^_@]\|[am]-c-[a-z]\|c-[am]-[a-z]\|[am]-[a-z]\)>'
-syntax case match
-
-" Whole line comment
-syntax region vifmComment contained contains=@Spell start='^\(\s\|:\)*"' end='$'
-" Comment at the end of a line
-syntax match vifmInlineComment contained contains=@Spell '\s"[^"]*$'
-" This prevents highlighting non-first line of multi-line command
-syntax match vifmNotComment contained '\s"[^"]*\(\n\s*\(\\\|"\)\)\@='
-
-" Empty line
-syntax match vifmEmpty /^\s*$/
-
-" :highlight clear
-syntax match vifmHiClear contained /\s*\<clear\>\s*/
-
-" Check spelling only in syntax elements marked with @Spell
-syntax spell notoplevel
-
-" Highlight
-highlight link vifmAutocmdCommand Statement
-highlight link vifmPatternCommands Statement
-highlight link vifmComment Comment
-highlight link vifmInlineComment Comment
-highlight link vifmCommand Statement
-highlight link vifmCommandCN Statement
-highlight link vifmPrefixCommands Statement
-highlight link vifmCdCommand Statement
-highlight link vifmCmdCommand Statement
-highlight link vifmColoCommand Statement
-highlight link vifmHiCommand Statement
-highlight link vifmHiClear Statement
-highlight link vifmInvertCommand Statement
-highlight link vifmMarkCommand Statement
-highlight link vifmFtCommand Statement
-highlight link vifmExprCommand Statement
-highlight link vifmNormalCommand Statement
-highlight link vifmLetCommand Statement
-highlight link vifmUnletCommand Statement
-highlight link vifmSetCommand Statement
-highlight link vifmSoCommand Statement
-highlight link vifmBuiltinFunction Function
-highlight link vifmOperator Operator
-highlight link vifmMap Statement
-highlight link vifmCMapAbbr Statement
-highlight link vifmHiArgs Type
-highlight link vifmAutoEvent Type
-highlight link vifmHiGroups Identifier
-highlight link vifmPattern String
-highlight link vifmHiStyles PreProc
-highlight link vifmHiColors Special
-highlight link vifmOption PreProc
-highlight link vifmNotation Special
-highlight link vifmMapArgList Special
-highlight link vifmString String
-highlight link vifmStringInExpr String
-highlight link vifmEnvVar PreProc
-highlight link vifmNumber Number
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
-
-endif