diff options
| -rw-r--r-- | autoload/csv.vim | 2 | ||||
| -rw-r--r-- | autoload/health/vimtex.vim | 6 | ||||
| -rw-r--r-- | autoload/vimtex.vim | 14 | ||||
| -rw-r--r-- | autoload/vimtex/cmd.vim | 4 | ||||
| -rw-r--r-- | autoload/vimtex/echo.vim | 4 | ||||
| -rw-r--r-- | autoload/vimtex/imaps.vim | 41 | ||||
| -rw-r--r-- | autoload/vimtex/include.vim | 3 | ||||
| -rw-r--r-- | autoload/vimtex/parser/toc.vim | 12 | ||||
| -rw-r--r-- | autoload/vimtex/syntax/load.vim | 9 | ||||
| -rw-r--r-- | autoload/vimtex/text_obj.vim | 63 | ||||
| -rw-r--r-- | autoload/vimtex/toc.vim | 5 | ||||
| -rw-r--r-- | autoload/vimtex/view/zathura.vim | 2 | ||||
| -rw-r--r-- | ftdetect/polyglot.vim | 2 | ||||
| -rw-r--r-- | ftplugin/julia.vim | 8 | ||||
| -rw-r--r-- | ftplugin/rst.vim | 2 | ||||
| -rw-r--r-- | indent/ecrystal.vim | 38 | ||||
| -rw-r--r-- | indent/rst.vim | 8 | ||||
| -rw-r--r-- | syntax/basic/literal.vim | 6 | ||||
| -rw-r--r-- | syntax/common.vim | 1 | ||||
| -rw-r--r-- | syntax/julia.vim | 35 | ||||
| -rw-r--r-- | syntax/llvm.vim | 2 | ||||
| -rw-r--r-- | syntax/mma.vim | 9 | ||||
| -rw-r--r-- | syntax/nginx.vim | 3 | ||||
| -rw-r--r-- | syntax/rst.vim | 30 | ||||
| -rw-r--r-- | syntax/rust.vim | 4 | ||||
| -rw-r--r-- | syntax/svelte.vim | 55 | ||||
| -rw-r--r-- | syntax/tablegen.vim | 2 | ||||
| -rw-r--r-- | syntax/tmux.vim | 46 | ||||
| -rw-r--r-- | syntax/vifm.vim | 8 | ||||
| -rw-r--r-- | syntax/zir.vim | 4 | 
30 files changed, 276 insertions, 152 deletions
| diff --git a/autoload/csv.vim b/autoload/csv.vim index e05d2e13..28d85b63 100644 --- a/autoload/csv.vim +++ b/autoload/csv.vim @@ -2346,7 +2346,7 @@ fu! csv#ColumnWidth()  endfu  fu! csv#Map(map, name, definition, ...) "{{{3 -    let keyname = substitute(a:name, '[<>]', '', 'g') +    let keyname = substitute(substitute(a:name, '[<>]', '', 'g'), '-', '_', 'g')      let expr = (exists("a:1") && a:1 == 'expr'  ? '<expr>' : '')      if !get(g:, "csv_nomap_". tolower(keyname), 0)          " All mappings are buffer local diff --git a/autoload/health/vimtex.vim b/autoload/health/vimtex.vim index 1af2c78f..a655feee 100644 --- a/autoload/health/vimtex.vim +++ b/autoload/health/vimtex.vim @@ -69,12 +69,6 @@ function! s:check_plugin_clash() abort " {{{1      call health#report_warn('Conflicting plugin detected: LaTeX-Box')      call health#report_info('vimtex does not work as expected when LaTeX-Box is installed!')      call health#report_info('Please disable or remove it to use vimtex!') - -    let l:polyglot = !empty(filter(copy(l:scriptnames), "v:val =~# 'polyglot'")) -    if l:polyglot -      call health#report_info('LaTeX-Box is included with vim-polyglot and may be disabled with:') -      call health#report_info('let g:polyglot_disabled = [''latex'']') -    endif    endif  endfunction diff --git a/autoload/vimtex.vim b/autoload/vimtex.vim index abd5adc1..e16a2ae3 100644 --- a/autoload/vimtex.vim +++ b/autoload/vimtex.vim @@ -247,6 +247,7 @@ function! vimtex#init_options() abort " {{{1          \   ],          \ }          \}) +  call s:init_option('vimtex_syntax_autoload_packages', ['amsmath'])    call s:init_option('vimtex_texcount_custom_arg', '') @@ -257,7 +258,10 @@ function! vimtex#init_options() abort " {{{1    call s:init_option('vimtex_toc_enabled', 1)    call s:init_option('vimtex_toc_custom_matchers', [])    call s:init_option('vimtex_toc_show_preamble', 1) -  call s:init_option('vimtex_toc_todo_keywords', ['TODO', 'FIXME']) +  call s:init_option('vimtex_toc_todo_labels', { +        \ 'TODO': 'TODO: ', +        \ 'FIXME': 'FIXME: ' +        \})    call s:init_option('vimtex_toc_config', {          \ 'name' : 'Table of contents (vimtex)',          \ 'mode' : 1, @@ -324,6 +328,7 @@ function! vimtex#init_options() abort " {{{1    call s:init_option('vimtex_view_skim_activate', 0)    call s:init_option('vimtex_view_skim_reading_bar', 1)    call s:init_option('vimtex_view_zathura_options', '') +  call s:init_option('vimtex_view_zathura_check_libsynctex', 1)  endfunction  " }}}1 @@ -332,18 +337,11 @@ function! vimtex#check_plugin_clash() abort " {{{1    let l:latexbox = !empty(filter(copy(l:scriptnames), "v:val =~# 'latex-box'"))    if l:latexbox -    let l:polyglot = !empty(filter(copy(l:scriptnames), "v:val =~# 'polyglot'"))      call vimtex#log#warning([            \ 'Conflicting plugin detected: LaTeX-Box',            \ 'vimtex does not work as expected when LaTeX-Box is installed!',            \ 'Please disable or remove it to use vimtex!',            \]) -    if l:polyglot -      call vimtex#log#warning([ -            \ 'LaTeX-Box is included with vim-polyglot and may be disabled with:', -            \ 'let g:polyglot_disabled = [''latex'']', -            \]) -    endif    endif  endfunction diff --git a/autoload/vimtex/cmd.vim b/autoload/vimtex/cmd.vim index 06b5e14c..62e3b470 100644 --- a/autoload/vimtex/cmd.vim +++ b/autoload/vimtex/cmd.vim @@ -274,7 +274,7 @@ endfunction  function! s:get_frac_cmd() abort " {{{1    let l:save_pos = vimtex#pos#get_cursor() -  while v:true +  while 1      let l:cmd = s:get_cmd('prev')      if empty(l:cmd) || l:cmd.pos_start.lnum < line('.')        call vimtex#pos#set_cursor(l:save_pos) @@ -375,7 +375,7 @@ function! s:get_frac_inline() abort " {{{1    let l:pos_after = -1    let l:pos_before = -1 -  while v:true +  while 1      let l:pos_before = l:pos_after      let l:pos_after = match(l:line, '\/', l:pos_after+1)      if l:pos_after < 0 || l:pos_after >= l:col | break | endif diff --git a/autoload/vimtex/echo.vim b/autoload/vimtex/echo.vim index 9c761f8f..ee80c942 100644 --- a/autoload/vimtex/echo.vim +++ b/autoload/vimtex/echo.vim @@ -66,7 +66,7 @@ function! s:choose_dict(dict, prompt) abort " {{{1      return values(a:dict)[0]    endif -  while v:true +  while 1      redraw!      if !empty(a:prompt)        echohl VimtexMsg @@ -93,7 +93,7 @@ endfunction  function! s:choose_list(list, prompt) abort " {{{1    if len(a:list) == 1 | return a:list[0] | endif -  while v:true +  while 1      redraw!      if !empty(a:prompt)        echohl VimtexMsg diff --git a/autoload/vimtex/imaps.vim b/autoload/vimtex/imaps.vim index 6b682f0c..5c507ad2 100644 --- a/autoload/vimtex/imaps.vim +++ b/autoload/vimtex/imaps.vim @@ -9,6 +9,11 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1  function! vimtex#imaps#init_buffer() abort " {{{1    if !g:vimtex_imaps_enabled | return | endif +  " Store mappings in buffer +  if !exists('b:vimtex_imaps') +    let b:vimtex_imaps = [] +  endif +    "    " Create imaps    " @@ -32,16 +37,18 @@ endfunction  function! vimtex#imaps#add_map(map) abort " {{{1    let s:custom_maps = get(s:, 'custom_maps', []) + [a:map] -  if exists('s:created_maps') +  if exists('b:vimtex_imaps')      call s:create_map(a:map)    endif  endfunction  " }}}1  function! vimtex#imaps#list() abort " {{{1 +  let l:maps = b:vimtex_imaps +    silent new vimtex\ imaps -  for l:map in s:created_maps +  for l:map in l:maps      call append('$', printf('%5S  ->  %-30S %S',            \ get(l:map, 'leader', get(g:, 'vimtex_imaps_leader', '`')) . l:map.lhs,            \ l:map.rhs, @@ -78,15 +85,16 @@ endfunction  " The imap generator  "  function! s:create_map(map) abort " {{{1 -  if index(s:created_maps, a:map) >= 0 | return | endif +  if index(b:vimtex_imaps, a:map) >= 0 | return | endif +  let l:map = deepcopy(a:map) -  let l:leader = get(a:map, 'leader', get(g:, 'vimtex_imaps_leader', '`')) +  let l:leader = get(l:map, 'leader', get(g:, 'vimtex_imaps_leader', '`'))    if l:leader !=# '' && !hasmapto(l:leader, 'i')      silent execute 'inoremap <silent><nowait><buffer>' l:leader . l:leader l:leader    endif -  let l:lhs = l:leader . a:map.lhs +  let l:lhs = l:leader . l:map.lhs -  let l:wrapper = get(a:map, 'wrapper', 'vimtex#imaps#wrap_math') +  let l:wrapper = get(l:map, 'wrapper', 'vimtex#imaps#wrap_math')    if ! exists('*' . l:wrapper)      echoerr 'vimtex error: imaps wrapper does not exist!'      echoerr '              ' . l:wrapper @@ -95,25 +103,25 @@ function! s:create_map(map) abort " {{{1    " Some wrappers use a context which must be made available to the wrapper    " function at run time. -  if has_key(a:map, 'context') +  if has_key(l:map, 'context')      execute 'let l:key = "' . escape(l:lhs, '<') . '"' -    let l:key .= a:map.rhs +    let l:key .= l:map.rhs      if !exists('b:vimtex_context')        let b:vimtex_context = {}      endif -    let b:vimtex_context[l:key] = a:map.context +    let b:vimtex_context[l:key] = l:map.context    endif    " The rhs may be evaluated before being passed to wrapper, unless expr is    " disabled (which it is by default) -  if !get(a:map, 'expr') -    let a:map.rhs = string(a:map.rhs) +  if !get(l:map, 'expr') +    let l:map.rhs = string(l:map.rhs)    endif    silent execute 'inoremap <expr><silent><nowait><buffer>' l:lhs -        \ l:wrapper . '("' . escape(l:lhs, '\') . '", ' . a:map.rhs . ')' +        \ l:wrapper . '("' . escape(l:lhs, '\') . '", ' . l:map.rhs . ')' -  let s:created_maps += [a:map] +  let b:vimtex_imaps += [l:map]  endfunction  " }}}1 @@ -182,11 +190,4 @@ endfunction  " }}}1 - -" {{{1 Initialize module - -let s:created_maps = [] - -" }}}1 -  endif diff --git a/autoload/vimtex/include.vim b/autoload/vimtex/include.vim index 830292c5..59c37977 100644 --- a/autoload/vimtex/include.vim +++ b/autoload/vimtex/include.vim @@ -82,7 +82,8 @@ endfunction  " }}}1  function! s:search_candidates_texinputs(fname) abort " {{{1    for l:suffix in [''] + split(&l:suffixesadd, ',') -    let l:candidates = glob(b:vimtex.root . '/**/' . a:fname . l:suffix, 0, 1) +    let l:candidates = glob(b:vimtex.root . '/**/' +          \ . fnameescape(a:fname) . l:suffix, 0, 1)      if !empty(l:candidates)        return l:candidates[0]      endif diff --git a/autoload/vimtex/parser/toc.vim b/autoload/vimtex/parser/toc.vim index 517a25be..a518ce53 100644 --- a/autoload/vimtex/parser/toc.vim +++ b/autoload/vimtex/parser/toc.vim @@ -154,7 +154,7 @@ let s:re_prefilter = '\v%(\\' . join([        \ 'tableofcontents',        \ 'todo',        \], '|') . ')' -      \ . '|\%\s*%(' . join(g:vimtex_toc_todo_keywords, '|') . ')' +      \ . '|\%\s*%(' . join(keys(g:vimtex_toc_todo_labels), '|') . ')'        \ . '|\%\s*vimtex-include'  for s:m in g:vimtex_toc_custom_matchers    if has_key(s:m, 'prefilter') @@ -513,14 +513,16 @@ endfunction  let s:matcher_todos = {        \ 're' : g:vimtex#re#not_bslash . '\%\s+(' -      \   . join(g:vimtex_toc_todo_keywords, '|') . ')[ :]+\s*(.*)', +      \   . join(keys(g:vimtex_toc_todo_labels), '|') . ')[ :]+\s*(.*)',        \ 'in_preamble' : 1,        \ 'priority' : 2,        \}  function! s:matcher_todos.get_entry(context) abort dict " {{{1    let [l:type, l:text] = matchlist(a:context.line, self.re)[1:2] +  let l:label = g:vimtex_toc_todo_labels[toupper(l:type)] +    return { -        \ 'title'  : toupper(l:type) . ': ' . l:text, +        \ 'title'  : l:label . l:text,          \ 'number' : '',          \ 'file'   : a:context.file,          \ 'line'   : a:context.lnum, @@ -547,8 +549,10 @@ function! s:matcher_todonotes.get_entry(context) abort dict " {{{1      let s:matcher_continue = deepcopy(self)    endif +  let l:label = get(g:vimtex_toc_todo_labels, 'TODO', 'TODO: ') +    return { -        \ 'title'  : 'TODO: ' . title, +        \ 'title'  : l:label . title,          \ 'number' : '',          \ 'file'   : a:context.file,          \ 'line'   : a:context.lnum, diff --git a/autoload/vimtex/syntax/load.vim b/autoload/vimtex/syntax/load.vim index 5008e24a..3b61d886 100644 --- a/autoload/vimtex/syntax/load.vim +++ b/autoload/vimtex/syntax/load.vim @@ -79,6 +79,15 @@ function! vimtex#syntax#load#packages() abort " {{{1      catch /E117:/      endtry    endfor + +  for l:pkg in g:vimtex_syntax_autoload_packages +    try +      call vimtex#syntax#p#{l:pkg}#load() +    catch /E117:/ +      call vimtex#log#warning('Syntax package does not exist: ' . l:pkg, +            \ 'Please see :help g:vimtex_syntax_autoload_packages') +    endtry +  endfor  endfunction  " }}}1 diff --git a/autoload/vimtex/text_obj.vim b/autoload/vimtex/text_obj.vim index 27d1a8b6..3b9105ff 100644 --- a/autoload/vimtex/text_obj.vim +++ b/autoload/vimtex/text_obj.vim @@ -385,23 +385,70 @@ endfunction  " }}}1  function! s:get_sel_items(is_inner) abort " {{{1    let l:pos_cursor = vimtex#pos#get_cursor() +  let l:val_cursor = vimtex#pos#val(l:pos_cursor)    " Find previous \item -  call vimtex#pos#set_cursor(l:pos_cursor[0], 1) -  let l:pos_start = searchpos('^\s*\\item\S*', 'bcnWz') -  if l:pos_start == [0, 0] | return [[], []] | endif +  let l:depth = 0 +  let l:pos_cur = vimtex#pos#next(l:pos_cursor) +  while 1 +    call vimtex#pos#set_cursor(vimtex#pos#prev(l:pos_cur)) +    if l:depth > 5 | return [[], []] | endif + +    let l:pos_start = searchpos( +          \ l:depth > 0 ? '\\begin{\w\+}' : '^\s*\\item\S*', +          \ 'bcnW') +    let l:val_start = vimtex#pos#val(l:pos_start) +    if l:val_start == 0 | return [[], []] | endif + +    let l:pos_endenv = searchpos('\%(^\s*\)\?\\end{\w\+}', 'bcnW') +    let l:val_endenv = vimtex#pos#val(l:pos_endenv) + +    if l:val_endenv == 0 || l:val_start > l:val_endenv +      if l:depth == 0 | break | endif +      let l:pos_cur = l:pos_start +      let l:depth -= 1 +    else +      let l:pos_cur = l:pos_endenv +      let l:depth += 1 +    endif +  endwhile    " Find end of current \item -  call vimtex#pos#set_cursor(l:pos_start) -  let l:pos_end = searchpos('\ze\n\s*\%(\\item\|\\end{itemize}\)', 'nW') -  if l:pos_end == [0, 0] -        \ || vimtex#pos#val(l:pos_cursor) > vimtex#pos#val(l:pos_end) +  let l:depth = 0 +  let l:pos_cur = l:pos_start +  while 1 +    call vimtex#pos#set_cursor(vimtex#pos#next(l:pos_cur)) + +    let l:re = l:depth > 0 +          \ ? '\\end{\w\+}' +          \ : '\n\s*\%(\\item\|\\end{\(itemize\|enumerate\)}\)' +    let l:pos_end = searchpos(l:re, 'nW') +    let l:val_end = vimtex#pos#val(l:pos_end) +    if l:depth == 0 && l:val_end == 0 +      return [[], []] +    endif + +    let l:pos_beginenv = searchpos('\\begin{\w\+}', 'cnW') +    let l:val_beginenv = vimtex#pos#val(l:pos_beginenv) + +    if l:val_beginenv == 0 || l:val_end < l:val_beginenv +      if l:depth == 0 | break | endif +      let l:pos_cur = l:pos_end +      let l:depth -= 1 +    else +      let l:pos_cur = l:pos_beginenv +      let l:depth += 1 +    endif +  endwhile + +  " The region must include the cursor +  if l:val_cursor > l:val_end      return [[], []]    endif    " Adjust for outer text object    if a:is_inner -    let l:pos_start[1] = searchpos('^\s*\\item\S*\s\?', 'cne')[1] + 1 +    let l:pos_start[1] = searchpos('^\s*\\item\S*\s', 'cne')[1] + 1      let l:pos_end[1] = col([l:pos_end[0], '$']) - 1    endif diff --git a/autoload/vimtex/toc.vim b/autoload/vimtex/toc.vim index ac660112..bb2d7ffb 100644 --- a/autoload/vimtex/toc.vim +++ b/autoload/vimtex/toc.vim @@ -354,7 +354,8 @@ function! s:toc.set_syntax() abort dict "{{{1    syntax match VimtexTocNum /\v(([A-Z]+>|\d+)(\.\d+)*)?\s*/ contained    execute 'syntax match VimtexTocTodo' -        \ '/\v\s\zs%(' . toupper(join(g:vimtex_toc_todo_keywords, '|')) . '): /' +        \ '/\v\s\zs%(' +        \   . toupper(join(keys(g:vimtex_toc_todo_labels), '|')) . '): /'          \ 'contained'    syntax match VimtexTocHotkey /\[[^]]\+\]/ contained @@ -751,7 +752,7 @@ endfunction  function! s:foldtext() abort " {{{1    let l:line = getline(v:foldstart)[3:]    if b:toc.todo_sorted -        \ && l:line =~# '\v%(' . join(g:vimtex_toc_todo_keywords, '|') . ')' +        \ && l:line =~# '\v%(' . join(keys(g:vimtex_toc_todo_labels), '|') . ')'      return substitute(l:line, '\w+\zs:.*', 's', '')    else      return l:line diff --git a/autoload/vimtex/view/zathura.vim b/autoload/vimtex/view/zathura.vim index a001fa7e..88e41468 100644 --- a/autoload/vimtex/view/zathura.vim +++ b/autoload/vimtex/view/zathura.vim @@ -13,7 +13,7 @@ function! vimtex#view#zathura#new() abort " {{{1      return {}    endif -  if executable('ldd') +  if g:vimtex_view_zathura_check_libsynctex && executable('ldd')      let l:shared = split(system("sh -c 'ldd $(which zathura)'"))      if v:shell_error == 0            \ && empty(filter(l:shared, 'v:val =~# ''libsynctex''')) diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index 40c33941..6cedcea6 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -719,7 +719,7 @@ fun! s:SelectJavascript()    endif  endfun -autocmd BufNewFile,BufRead *.{js,mjs,jsm,es,es6},Jakefile setfiletype javascript +autocmd BufNewFile,BufRead *.{js,mjs,cjs,jsm,es,es6},Jakefile setfiletype javascript  autocmd BufNewFile,BufRead * call s:SelectJavascript()    augroup end  endif diff --git a/ftplugin/julia.vim b/ftplugin/julia.vim index 9b787512..3b81019d 100644 --- a/ftplugin/julia.vim +++ b/ftplugin/julia.vim @@ -39,7 +39,7 @@ if exists("loaded_matchit")    " note: the following regex not only recognizes macros, but also local/global keywords.    " the purpose is recognizing things like `@inline myfunction()`    " or `global myfunction(...)` etc, for matchit and block movement functionality -  let s:macro_regex = '\%(@\%(#\@!\S\)\+\|\<\%(local\|global\)\)\s\+' +  let s:macro_regex = '\%(@\%([#(]\@!\S\)\+\|\<\%(local\|global\)\)\s\+'    let s:nomacro = '\%(' . s:macro_regex . '\)\@<!'    let s:yesmacro = s:nomacro . '\%('. s:macro_regex . '\)\+'    let b:julia_begin_keywordsm = '\%(' . s:yesmacro . b:julia_begin_keywords . '\)\|' @@ -76,10 +76,10 @@ if exists("loaded_matchit")    let b:match_words = 'JuliaGetMatchWords()'    " we need to skip everything within comments, strings and -  " the 'end' keyword when it is used as a range rather than as -  " the end of a block +  " the 'begin' and 'end' keywords when they are used as a range rather than as +  " the delimiter of a block    let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name") =~ ' -        \ . '"\\<julia\\%(Comprehension\\%(For\\|If\\)\\|RangeKeyword\\|SymbolS\\?\\|Comment[LM]\\|\\%([bv]\\|ip\\|MIME\\|Shell\\|Doc\\)\\?String\\|RegEx\\)\\>"' +        \ . '"\\<julia\\%(Comprehension\\%(For\\|If\\)\\|RangeKeyword\\|SymbolS\\?\\|Comment[LM]\\|\\%([bsvr]\\|ip\\|MIME\\|big\\|raw\\|test\\|html\\|int128\\|Printf\\|Shell\\|Doc\\)\\?String\\|StringPrefixed\\|RegEx\\)\\>"'    let b:undo_ftplugin = b:undo_ftplugin          \ . " | unlet! b:match_words b:match_skip b:match_ignorecase" diff --git a/ftplugin/rst.vim b/ftplugin/rst.vim index 14983362..5265edcf 100644 --- a/ftplugin/rst.vim +++ b/ftplugin/rst.vim @@ -5,7 +5,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1  " Maintainer: Marshall Ward <marshall.ward@gmail.com>  " Original Maintainer: Nikolai Weibull <now@bitwi.se>  " Website: https://github.com/marshallward/vim-restructuredtext -" Latest Revision: 2018-12-29 +" Latest Revision: 2020-03-31  if exists("b:did_ftplugin")      finish diff --git a/indent/ecrystal.vim b/indent/ecrystal.vim index adf64e89..0d474587 100644 --- a/indent/ecrystal.vim +++ b/indent/ecrystal.vim @@ -86,28 +86,20 @@ else    endfunction  endif -" Does the given pattern match at the cursor's position? -function s:MatchCursor(pattern) -  return searchpos(a:pattern, 'cnz', line('.')) == [line('.'), col('.')] -endfunction -  " Does the given pattern match at the given position? -function s:MatchAt(lnum, col, pattern) -  let pos = getcurpos() - -  try -    call cursor(a:lnum, a:col) -    let result = s:MatchCursor(a:pattern) -  finally -    call setpos('.', pos) -  endtry +function! s:MatchAt(lnum, col, pattern) abort +  let idx = a:col - 1 +  return match(getline(a:lnum), a:pattern, idx) == idx +endfunction -  return result +" Does the given pattern match at the cursor's position? +function! s:MatchCursor(pattern) abort +  return s:MatchAt(line('.'), col('.'), a:pattern)  endfunction  " Is the cell at the given position part of a tag? If so, return the  " position of the opening delimiter. -function s:MatchECR(...) +function! s:MatchECR(...) abort    if a:0      let lnum = a:1      let col = a:2 @@ -133,7 +125,7 @@ endfunction  " If the cell at the given position is part of a control tag, return the  " respective positions of the opening and closing delimiters for that  " tag. -function s:MatchECRControl(...) +function! s:MatchECRControl(...) abort    let pos = getcurpos()    if a:0 @@ -175,7 +167,7 @@ endfunction  " Determine whether or not the control tag at the given position starts  " an indent. -function s:ECRIndent(...) +function! s:ECRIndent(...) abort    if a:0      if type(a:1) == 0        let [open, close] = s:MatchECRControl(a:1, a:2) @@ -237,7 +229,7 @@ endfunction  " Determine if the control tag at the given position ends an indent or  " not. -function s:ECRDedent(...) +function! s:ECRDedent(...) abort    if a:0      if type(a:1) == 0        let [open, close] = s:MatchECRControl(a:1, a:2) @@ -297,7 +289,7 @@ function s:ECRDedent(...)  endfunction  " Find and match a control tag in the given line, if one exists. -function s:FindECRControl(...) +function! s:FindECRControl(...) abort    let lnum = a:0 ? a:1 : line('.')    let open = { 'lnum': 0, 'col': 0 } @@ -324,7 +316,7 @@ endfunction  " This takes two arguments: the first is the line to start searching  " from (exclusive); the second is the line to stop searching at  " (inclusive). -function s:FindPrevECRControl(...) +function! s:FindPrevECRControl(...) abort    if a:0 == 0      let start = line('.')      let stop = 1 @@ -369,7 +361,7 @@ endfunction  " GetEcrystalIndent {{{1  " ================= -function GetEcrystalIndent() abort +function! GetEcrystalIndent() abort    let prev_lnum = prevnonblank(v:lnum - 1)    if b:ecrystal_indent_multiline @@ -461,7 +453,7 @@ endfunction  " GetEcrystalFold {{{1  " =============== -function GetEcrystalFold() abort +function! GetEcrystalFold() abort    let fold = '='    let col = crystal#indent#Match(v:lnum, s:ecr_control_open) diff --git a/indent/rst.vim b/indent/rst.vim index 8e228dfe..0eb0f9c6 100644 --- a/indent/rst.vim +++ b/indent/rst.vim @@ -1,9 +1,11 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1  " Vim indent file -" Language:             reStructuredText Documentation Format -" Previous Maintainer:  Nikolai Weibull <now@bitwi.se> -" Latest Revision:      2011-08-03 +" Vim reST indent file +" Language: reStructuredText Documentation Format +" Maintainer: Marshall Ward <marshall.ward@gmail.com> +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2020-03-31  if exists("b:did_indent")    finish diff --git a/syntax/basic/literal.vim b/syntax/basic/literal.vim index eb7dce77..89d96bb0 100644 --- a/syntax/basic/literal.vim +++ b/syntax/basic/literal.vim @@ -39,9 +39,7 @@ syntax region  typescriptArray matchgroup=typescriptBraces  syntax match typescriptNumber /\<0[bB][01][01_]*\>/        nextgroup=@typescriptSymbols skipwhite skipempty  syntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/       nextgroup=@typescriptSymbols skipwhite skipempty  syntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty -syntax match typescriptNumber /\d[0-9_]*\.\d[0-9_]*\|\d[0-9_]*\|\.\d[0-9]*/ -  \ nextgroup=typescriptExponent,@typescriptSymbols skipwhite skipempty -syntax match typescriptExponent /[eE][+-]\=\d[0-9]*\>/ -  \ nextgroup=@typescriptSymbols skipwhite skipempty contained +syntax match typescriptNumber /\<\%(\d[0-9_]*\%(\.\d[0-9_]*\)\=\|\.\d[0-9_]*\)\%([eE][+-]\=\d[0-9_]*\)\=\>/ +  \ nextgroup=typescriptSymbols skipwhite skipempty  endif diff --git a/syntax/common.vim b/syntax/common.vim index 51900080..6b451cec 100644 --- a/syntax/common.vim +++ b/syntax/common.vim @@ -98,7 +98,6 @@ if exists("did_typescript_hilink")    HiLink typescriptType                 Type    HiLink typescriptNull                 Boolean    HiLink typescriptNumber               Number -  HiLink typescriptExponent             Number    HiLink typescriptBoolean              Boolean    HiLink typescriptObjectLabel          typescriptLabel    HiLink typescriptLabel                Label diff --git a/syntax/julia.vim b/syntax/julia.vim index 2dea6175..c23dc915 100644 --- a/syntax/julia.vim +++ b/syntax/julia.vim @@ -275,7 +275,7 @@ syntax region  juliatextString		matchgroup=juliaStringDelim start=+\<text\z("\("  syntax region  juliahtmlString		matchgroup=juliaStringDelim start=+\<html\z("\(""\)\?\)+ skip=+\%(\\\\\)*\\"+ end=+\z1+ contains=@juliaSpecialCharsRaw  syntax region  juliaint128String	matchgroup=juliaStringDelim start=+\<u\?int128\z("\(""\)\?\)+ skip=+\%(\\\\\)*\\"+ end=+\z1+ contains=@juliaSpecialCharsRaw -syntax region  juliaDocString		matchgroup=juliaStringDelim start=+^"""+ skip=+\%(\\\\\)*\\"+ end=+"""+ contains=@juliaStringVars,@juliaSpecialChars,@juliaSpellcheckDocStrings +syntax region  juliaDocString		matchgroup=juliaDocStringDelim start=+^"""+ skip=+\%(\\\\\)*\\"+ end=+"""+ contains=@juliaStringVars,@juliaSpecialChars,@juliaSpellcheckDocStrings  exec 'syntax region  juliaPrintfMacro		contained transparent start="@s\?printf(" end=")\@'.s:d(1).'<=" contains=juliaMacro,juliaPrintfParBlock'  syntax region  juliaPrintfMacro		contained transparent start="@s\?printf\s\+" end="\ze\%([])};#]\|$\|\<for\>\)" contains=@juliaExprsPrintf,juliaMacro,juliaSymbolS,juliaQuotedParBlockS @@ -416,22 +416,23 @@ hi def link juliaComplexUnit		Constant  hi def link juliaChar			Character  hi def link juliaString			String -hi def link juliaStringPrefixed		String -hi def link juliabString		String -hi def link juliasString		String -hi def link juliavString		String -hi def link juliarString		String -hi def link juliaipString		String -hi def link juliabigString		String -hi def link juliaMIMEString		String -hi def link juliarawString		String -hi def link juliatestString		String -hi def link juliahtmlString		String -hi def link juliaint128String		String -hi def link juliaPrintfString		String -hi def link juliaShellString		String -hi def link juliaDocString		String -hi def link juliaStringDelim		String +hi def link juliaStringPrefixed		juliaString +hi def link juliabString		juliaString +hi def link juliasString		juliaString +hi def link juliavString		juliaString +hi def link juliarString		juliaString +hi def link juliaipString		juliaString +hi def link juliabigString		juliaString +hi def link juliaMIMEString		juliaString +hi def link juliarawString		juliaString +hi def link juliatestString		juliaString +hi def link juliahtmlString		juliaString +hi def link juliaint128String		juliaString +hi def link juliaPrintfString		juliaString +hi def link juliaShellString		juliaString +hi def link juliaDocString		juliaString +hi def link juliaStringDelim		juliaString +hi def link juliaDocStringDelim		juliaDocString  hi def link juliaStringVarsPla		Identifier  hi def link juliaStringVarDelim		Identifier diff --git a/syntax/llvm.vim b/syntax/llvm.vim index ea9796f1..427e1134 100644 --- a/syntax/llvm.vim +++ b/syntax/llvm.vim @@ -84,6 +84,7 @@ syn keyword llvmKeyword        \ externally_initialized        \ extern_weak        \ fastcc +      \ tailcc        \ filter        \ from        \ gc @@ -91,6 +92,7 @@ syn keyword llvmKeyword        \ hhvmcc        \ hhvm_ccc        \ hidden +      \ immarg        \ initialexec        \ inlinehint        \ inreg diff --git a/syntax/mma.vim b/syntax/mma.vim index d668ab32..f6059296 100644 --- a/syntax/mma.vim +++ b/syntax/mma.vim @@ -705,6 +705,13 @@ syntax keyword mmaSystemSymbol MixedRadix MixedRadixQuantity MixedUnit MixtureDi  syntax keyword mmaSystemSymbol Modal Mode Modular ModularInverse ModularLambda Module  syntax keyword mmaSystemSymbol Module Modulus MoebiusMu Moment Momentary MomentConvert  syntax keyword mmaSystemSymbol MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor +syntax keyword mmaSystemSymbol MongoConnect MongoGetDatabase MongoGetCollection MongoGetDatabaseNames MongoDatabaseName MongoDatabaseDrop MongoGetCollectionNames +syntax keyword mmaSystemSymbol MongoCollectionName MongoCollectionDrop MongoCollectionStats MongoCollectionValidate +syntax keyword mmaSystemSymbol MongoCollectionCount MongoCollectionFind MongoCollectionFindOne MongoCollectionAggregate MongoCollectionDistinct +syntax keyword mmaSystemSymbol MongoCollectionInsert MongoCollectionUpdateOne MongoCollectionUpdateMany MongoCollectionDeleteOne MongoCollectionDeleteMany MongoCollectionReplaceOne +syntax keyword mmaSystemSymbol MongoCursorNext MongoWriteConcernCreate MongoCursorSetBatchSize MongoCursorGetBatchSize MongoCursorToArray +syntax keyword mmaSystemSymbol MongoClient MongoDatabase MongoCollection MongoCursor +syntax keyword mmaSystemSymbol MongoWriteConcern BSONObjectID MongoInsertResult MongoDriverVersion  syntax keyword mmaSystemSymbol Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition  syntax keyword mmaSystemSymbol MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber  syntax keyword mmaSystemSymbol MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most @@ -1298,7 +1305,7 @@ syntax match mmaOperator "&"  syntax match mmaOperator "?\{1,2}"  "User Symbols -syntax match mmaSymbol "[^0-9][A-Za-z0-9`$]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator,mmaSystemSymbol,mmaBrackets,mmaError +syntax match mmaSymbol "[^0-9"][A-Za-z0-9`$]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator,mmaSystemSymbol,mmaBrackets,mmaError  syntax match mmaSymbol "\<[^0-9][A-Za-z0-9`$]\+\>" contains=mmaOperator,mmaSystemSymbol,mmaBrackets,mmaError  syntax match mmaSymbol "\~\s*[^~]\+\s*\~"ms=s+1,me=e-1 contains=mmaOperator,mmaSystemSymbol,mmaBrackets,mmaError  syntax match mmaSymbol "//\s*[A-Za-z0-9`$]\+"ms=s+2 contains=mmaOperator,mmaSystemSymbol,mmaBrackets,mmaError diff --git a/syntax/nginx.vim b/syntax/nginx.vim index 4c6a901d..78160f37 100644 --- a/syntax/nginx.vim +++ b/syntax/nginx.vim @@ -300,12 +300,15 @@ syn keyword ngxDirective large_client_header_buffers  syn keyword ngxDirective least_conn  syn keyword ngxDirective least_time  syn keyword ngxDirective limit_conn +syn keyword ngxDirective limit_conn_dry_run  syn keyword ngxDirective limit_conn_log_level  syn keyword ngxDirective limit_conn_status  syn keyword ngxDirective limit_conn_zone +syn keyword ngxDirective limit_except  syn keyword ngxDirective limit_rate  syn keyword ngxDirective limit_rate_after  syn keyword ngxDirective limit_req +syn keyword ngxDirective limit_req_dry_run  syn keyword ngxDirective limit_req_log_level  syn keyword ngxDirective limit_req_status  syn keyword ngxDirective limit_req_zone diff --git a/syntax/rst.vim b/syntax/rst.vim index 3b14d63f..4995af9f 100644 --- a/syntax/rst.vim +++ b/syntax/rst.vim @@ -1,11 +1,11 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1 -" Vim syntax file +" Vim reST syntax file  " Language: reStructuredText documentation format  " Maintainer: Marshall Ward <marshall.ward@gmail.com>  " Previous Maintainer: Nikolai Weibull <now@bitwi.se>  " Website: https://github.com/marshallward/vim-restructuredtext -" Latest Revision: 2018-12-29 +" Latest Revision: 2020-03-31  if exists("b:current_syntax")    finish @@ -99,22 +99,32 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ      let first = a:start[0]    endif -  execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained' +  if a:start != '``' +    let rst_contains=' contains=rstEscape' . a:name +    execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained' +  else +    let rst_contains='' +  endif    execute 'syn region rst' . a:name .          \ ' start=+' . a:char_left . '\zs' . a:start .          \ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' .          \ a:middle .          \ ' end=+' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+' . -        \ ' contains=rstEscape' . a:name +        \ rst_contains -  execute 'hi def link rstEscape'.a:name.' Special' +  if a:start != '``' +    execute 'hi def link rstEscape'.a:name.' Special' +  endif  endfunction +" TODO: The "middle" argument may no longer be useful here.  function! s:DefineInlineMarkup(name, start, middle, end) -  let middle = a:middle != "" ? -        \ (' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+') : -        \ "" +  if a:middle == '`' +    let middle = ' skip=+\s'.a:middle.'+' +  else +    let middle = ' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+' +  endif    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'")    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '"', '"') @@ -123,8 +133,8 @@ function! s:DefineInlineMarkup(name, start, middle, end)    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}')    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>')    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’') -  " TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters +  " TODO: Additional whitespace Unicode characters: Pd, Po, Pi, Pf, Ps    call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|\%ua0\|[/:]\)', '')    execute 'syn match rst' . a:name . @@ -138,7 +148,7 @@ endfunction  call s:DefineInlineMarkup('Emphasis', '\*', '\*', '\*')  call s:DefineInlineMarkup('StrongEmphasis', '\*\*', '\*', '\*\*')  call s:DefineInlineMarkup('InterpretedTextOrHyperlinkReference', '`', '`', '`_\{0,2}') -call s:DefineInlineMarkup('InlineLiteral', '``', "", '``') +call s:DefineInlineMarkup('InlineLiteral', '``', '`', '``')  call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}')  call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`') diff --git a/syntax/rust.vim b/syntax/rust.vim index ca31c5cd..0cf32ed9 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -69,8 +69,7 @@ syn keyword   rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipw  syn match     rustIdentifier  contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained  syn match     rustFuncName    "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained -syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount -syn match rustMacroRepeatCount ".\?[*+]" contained +syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end="),\=[*+]" contains=TOP  syn match rustMacroVariable "$\w\+"  " Reserved (but not yet used) keywords {{{2 @@ -280,7 +279,6 @@ hi def link rustIdentifierPrime rustIdentifier  hi def link rustTrait           rustType  hi def link rustDeriveTrait     rustTrait -hi def link rustMacroRepeatCount   rustMacroRepeatDelimiters  hi def link rustMacroRepeatDelimiters   Macro  hi def link rustMacroVariable Define  hi def link rustSigil         StorageClass diff --git a/syntax/svelte.vim b/syntax/svelte.vim index e4b5f27d..7f7e4ff0 100644 --- a/syntax/svelte.vim +++ b/syntax/svelte.vim @@ -36,6 +36,8 @@ syntax keyword svelteKeyword slot contained containedin=htmlTag  "   https://github.com/mxw/vim-jsx/blob/master/after/syntax/jsx.vim  syntax region svelteExpression start="{" end="" contains=jsBlock,javascriptBlock containedin=htmlString,htmlTag,htmlArg,htmlValue,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,htmlHead,htmlTitle,htmlBoldItalicUnderline,htmlUnderlineBold,htmlUnderlineItalicBold,htmlUnderlineBoldItalic,htmlItalicUnderline,htmlItalicBold,htmlItalicBoldUnderline,htmlItalicUnderlineBold,htmlLink,htmlLeadingSpace,htmlBold,htmlBoldUnderline,htmlBoldItalic,htmlBoldUnderlineItalic,htmlUnderline,htmlUnderlineItalic,htmlItalic,htmlStrike,javaScript +syntax region svelteSurroundingTag contained start=+<\(script\|style\|template\)+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent +  " Block conditionals.  syntax match svelteConditional "#if" contained containedin=jsBlock,javascriptBlock  syntax match svelteConditional "/if" contained containedin=jsBlock,javascriptBlock @@ -60,6 +62,59 @@ highlight def link svelteConditional Conditional  highlight def link svelteKeyword Keyword  highlight def link svelteRepeat Repeat +" Preprocessed languages that aren't supported out of the box by Svelte require +" additional syntax files to be pulled in and can slow Vim down a bit. For that +" reason, preprocessed languages must be enabled manually. Note that some may +" require additional plugins that contain the actual syntax definitions. +" +" Heavily cribbed from https://github.com/posva/vim-vue and largely completed by +" @davidroeca (thank you!). + +" A syntax should be registered if there's a valid syntax definition known to +" Vim and it is enabled for the Svelte plugin. +function! s:enabled(language) +  " Check whether a syntax file for {language} exists +  if empty(globpath(&runtimepath, 'syntax/' . a:language . '.vim')) +    return 0 +  endif + +  " If g:svelte_preprocessors is set, check for it there, otherwise return 0. +  if exists('g:svelte_preprocessors') && type(g:svelte_preprocessors) == v:t_list +    return index(g:svelte_preprocessors, a:language) != -1 +  else +    return 0 +  endif +endfunction + +let s:languages = [ +      \ { 'name': 'less', 'tag': 'style' }, +      \ { 'name': 'scss', 'tag': 'style' }, +      \ { 'name': 'sass', 'tag': 'style' }, +      \ { 'name': 'stylus', 'tag': 'style' }, +      \ { 'name': 'typescript', 'tag': 'script' }, +      \ ] + +for s:language in s:languages +  let s:attr = '\(lang\|type\)=\("\|''\)[^\2]*' . s:language.name . '[^\2]*\2' +  let s:start = '<' . s:language.tag . '\>\_[^>]*' . s:attr . '\_[^>]*>' + +  if s:enabled(s:language.name) +    execute 'syntax include @' . s:language.name . ' syntax/' . s:language.name . '.vim' +    unlet! b:current_syntax + +    execute 'syntax region svelte_' . s:language.name +          \ 'keepend' +          \ 'start=/' . s:start . '/' +          \ 'end="</' . s:language.tag . '>"me=s-1' +          \ 'contains=@' . s:language.name . ',svelteSurroundingTag' +          \ 'fold' +  endif +endfor + +" Cybernetically enhanced web apps.  let b:current_syntax = "svelte" +" Sync from start because of the wacky nesting. +syntax sync fromstart +  endif diff --git a/syntax/tablegen.vim b/syntax/tablegen.vim index c5136d03..41928648 100644 --- a/syntax/tablegen.vim +++ b/syntax/tablegen.vim @@ -16,7 +16,7 @@ syntax sync minlines=100  syn case match -syn keyword tgKeyword   def let in code dag field include defm foreach +syn keyword tgKeyword   def let in code dag field include defm foreach defset defvar if then else  syn keyword tgType      class int string list bit bits multiclass  syn match   tgNumber    /\<\d\+\>/ diff --git a/syntax/tmux.vim b/syntax/tmux.vim index f2e3f3e1..7993d481 100644 --- a/syntax/tmux.vim +++ b/syntax/tmux.vim @@ -1,7 +1,7 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tmux') == -1  " Language: tmux(1) configuration file -" Version: 3.1 (git-f986539e) +" Version: before-OpenBSD-lock (git-53c84fd4)  " URL: https://github.com/ericpruitt/tmux.vim/  " Maintainer: Eric Pruitt <eric.pruitt@gmail.com>  " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) @@ -66,41 +66,43 @@ for s:i in range(0, 255)  endfor  syn keyword tmuxOptions -\ backspace buffer-limit command-alias default-terminal escape-time -\ exit-empty activity-action assume-paste-time base-index bell-action -\ default-command default-shell default-size destroy-unattached +\ backspace buffer-limit command-alias copy-command default-terminal editor +\ escape-time exit-empty activity-action assume-paste-time base-index +\ bell-action default-command default-shell default-size destroy-unattached  \ detach-on-destroy display-panes-active-colour display-panes-colour -\ display-panes-time display-time exit-unattached focus-events history-file -\ history-limit key-table lock-after-time lock-command message-command-style -\ message-limit message-style aggressive-resize allow-rename +\ display-panes-time display-time exit-unattached extended-keys focus-events +\ history-file history-limit key-table lock-after-time lock-command +\ message-command-style message-limit aggressive-resize allow-rename  \ alternate-screen automatic-rename automatic-rename-format -\ clock-mode-colour clock-mode-style main-pane-height main-pane-width -\ mode-keys mode-style monitor-activity monitor-bell monitor-silence mouse -\ other-pane-height other-pane-width pane-active-border-style -\ pane-base-index pane-border-format pane-border-status pane-border-style -\ prefix prefix2 remain-on-exit renumber-windows repeat-time set-clipboard -\ set-titles set-titles-string silence-action status status-bg status-fg -\ status-format status-interval status-justify status-keys status-left -\ status-left-length status-left-style status-position status-right -\ status-right-length status-right-style status-style synchronize-panes +\ clock-mode-colour clock-mode-style copy-mode-current-match-style +\ copy-mode-mark-style copy-mode-match-style main-pane-height +\ main-pane-width message-style mode-keys mode-style monitor-activity +\ monitor-bell monitor-silence mouse other-pane-height other-pane-width +\ pane-active-border-style pane-base-index pane-border-format +\ pane-border-lines pane-border-status pane-border-style prefix prefix2 +\ remain-on-exit renumber-windows repeat-time set-clipboard set-titles +\ set-titles-string silence-action status status-bg status-fg status-format +\ status-interval status-justify status-keys status-left status-left-length +\ status-left-style status-position status-right status-right-length +\ status-right-style status-style synchronize-panes terminal-features  \ terminal-overrides update-environment user-keys visual-activity  \ visual-bell visual-silence window-active-style window-size  \ window-status-activity-style window-status-bell-style  \ window-status-current-format window-status-current-style  \ window-status-format window-status-last-style window-status-separator -\ window-status-style window-style word-separators wrap-search xterm-keys +\ window-status-style window-style word-separators wrap-search  syn keyword tmuxCommands  \ attach attach-session bind bind-key break-pane breakp capture-pane  \ capturep choose-buffer choose-client choose-tree clear-history clearhist -\ clock-mode command-prompt confirm confirm-before copy-mode detach -\ detach-client display display-menu display-message display-panes +\ clock-mode command-prompt confirm confirm-before copy-mode customize-mode +\ detach detach-client display display-menu display-message display-panes  \ display-popup displayp find-window findw if if-shell join-pane joinp -\ kill-pane kill-server kill-session kill-window killp has-session has killw +\ kill-pane kill-server kill-session kill-window killp has has-session killw  \ link-window linkw list-buffers list-clients list-commands list-keys  \ list-panes list-sessions list-windows load-buffer loadb lock lock-client -\ lock-server lock-session lockc last-pane lastp locks ls last-window last -\ lsb lsc delete-buffer deleteb lscm lsk lsp lsw menu move-pane move-window +\ lock-server lock-session lockc last-pane lastp locks ls last last-window +\ lsb delete-buffer deleteb lsc lscm lsk lsp lsw menu move-pane move-window  \ movep movew new new-session new-window neww next next-layout next-window  \ nextl paste-buffer pasteb pipe-pane pipep popup prev previous-layout  \ previous-window prevl refresh refresh-client rename rename-session diff --git a/syntax/vifm.vim b/syntax/vifm.vim index e8f9892f..22153af7 100644 --- a/syntax/vifm.vim +++ b/syntax/vifm.vim @@ -2,7 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1  " vifm syntax file  " Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: March 7, 2020 +" Last Change: May 17, 2020  " Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.  if exists('b:current_syntax') @@ -146,9 +146,9 @@ syntax keyword vifmOption contained aproposprg autochpos caseoptions cdpath cd  		\ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf  		\ runexec scrollbind scb scrolloff so sort sortgroups sortorder sortnumbers  		\ shell sh shellflagcmd shcf shortmess shm showtabline stal sizefmt slowfs -		\ smartcase scs statusline stl suggestoptions syncregs syscalls tabscope -		\ tabstop timefmt timeoutlen title tm trash trashdir ts tuioptions to -		\ undolevels ul vicmd viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu +		\ 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 diff --git a/syntax/zir.vim b/syntax/zir.vim index a0e49394..c985aca4 100644 --- a/syntax/zir.vim +++ b/syntax/zir.vim @@ -14,7 +14,7 @@ syn region zirCommentLine start=";" end="$" contains=zirTodo,@Spell  syn region zirBlock start="{" end="}" transparent fold -syn keyword zirKeyword primitive fntype int str as ptrtoint fieldptr deref asm unreachable export +syn keyword zirKeyword primitive fntype int str as ptrtoint fieldptr deref asm unreachable export ref  syn keyword zirTodo contained TODO @@ -48,7 +48,7 @@ hi def link zirHexNumber Constant  hi def link zirOctNumber Constant  hi def link zirBinNumber Constant -hi def link zirGlobal Ignore +hi def link zirGlobal Identifier  hi def link zirLocal  Identifier  endif | 
