diff options
Diffstat (limited to '')
51 files changed, 271 insertions, 123 deletions
@@ -178,7 +178,7 @@ If you need full functionality of any plugin, please use it directly with your p - [tptp](https://github.com/c-cube/vim-tptp) (syntax) - [twig](https://github.com/lumiliet/vim-twig) (syntax, indent, ftplugin) - [typescript](https://github.com/HerringtonDarkholme/yats.vim) (syntax, indent, compiler, ftplugin) -- [vala](https://github.com/arrufat/vala.vim) (syntax, indent) +- [vala](https://github.com/arrufat/vala.vim) (syntax, indent, ftplugin) - [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax) - [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax) - [vifm](https://github.com/vifm/vifm.vim) (syntax, autoload, ftplugin) diff --git a/after/ftplugin/javascriptreact.vim b/after/ftplugin/javascriptreact.vim new file mode 100644 index 00000000..e423f0ed --- /dev/null +++ b/after/ftplugin/javascriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/javascript.vim + +endif diff --git a/after/ftplugin/typescriptreact.vim b/after/ftplugin/typescriptreact.vim new file mode 100644 index 00000000..931839b1 --- /dev/null +++ b/after/ftplugin/typescriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/typescript.vim + +endif diff --git a/after/indent/javascript.vim b/after/indent/javascript.vim index f183061c..24b7f937 100644 --- a/after/indent/javascript.vim +++ b/after/indent/javascript.vim @@ -21,7 +21,7 @@ if exists('s:did_indent') endif setlocal indentexpr=GetJsxIndent() -setlocal indentkeys=0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/ +setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/ function! GetJsxIndent() return jsx_pretty#indent#get(function('GetJavascriptIndent')) diff --git a/after/indent/javascriptreact.vim b/after/indent/javascriptreact.vim new file mode 100644 index 00000000..e423f0ed --- /dev/null +++ b/after/indent/javascriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/javascript.vim + +endif diff --git a/after/indent/typescript.vim b/after/indent/typescript.vim index b7f0d185..dd8ee271 100644 --- a/after/indent/typescript.vim +++ b/after/indent/typescript.vim @@ -26,7 +26,7 @@ if exists('s:did_indent') endif setlocal indentexpr=GetJsxIndent() -setlocal indentkeys=0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/ +setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/ function! GetJsxIndent() return jsx_pretty#indent#get(function('GetTypescriptIndent')) diff --git a/after/indent/typescriptreact.vim b/after/indent/typescriptreact.vim new file mode 100644 index 00000000..931839b1 --- /dev/null +++ b/after/indent/typescriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/typescript.vim + +endif diff --git a/after/syntax/javascriptreact.vim b/after/syntax/javascriptreact.vim new file mode 100644 index 00000000..e423f0ed --- /dev/null +++ b/after/syntax/javascriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/javascript.vim + +endif diff --git a/after/syntax/tsx.vim b/after/syntax/tsx.vim new file mode 100644 index 00000000..863da121 --- /dev/null +++ b/after/syntax/tsx.vim @@ -0,0 +1,28 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1 + +" GraphQL Support +if exists('b:current_syntax') + let s:current_syntax = b:current_syntax + unlet b:current_syntax +endif +syn include @GraphQLSyntax syntax/graphql.vim +if exists('s:current_syntax') + let b:current_syntax = s:current_syntax +endif + +let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)' + +exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend' +exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString' + +" Support expression interpolation ((${...})) inside template strings. +syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=typescriptTemplateSubstitution containedin=graphqlFold keepend + +hi def link graphqlTemplateString typescriptTemplate +hi def link graphqlTemplateExpression typescriptTemplateSubstitution + +syn cluster typescriptExpression add=graphqlTaggedTemplate +syn cluster graphqlTaggedTemplate add=graphqlTemplateString + + +endif diff --git a/after/syntax/typescript.vim b/after/syntax/typescript.vim index 9f52ed21..8b00fb45 100644 --- a/after/syntax/typescript.vim +++ b/after/syntax/typescript.vim @@ -30,6 +30,12 @@ endif " refine the typescript line comment syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend +for syntax_name in ['tsxRegion', 'tsxFragment'] + if hlexists(syntax_name) + exe 'syntax clear ' . syntax_name + endif +endfor + if !hlexists('typescriptTypeCast') " add a typescriptBlock group for typescript syntax region typescriptBlock diff --git a/after/syntax/typescriptreact.vim b/after/syntax/typescriptreact.vim new file mode 100644 index 00000000..931839b1 --- /dev/null +++ b/after/syntax/typescriptreact.vim @@ -0,0 +1,5 @@ +if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1) + +source <sfile>:h/typescript.vim + +endif diff --git a/autoload/cargo.vim b/autoload/cargo.vim index f24db923..ffa946da 100644 --- a/autoload/cargo.vim +++ b/autoload/cargo.vim @@ -5,7 +5,17 @@ function! cargo#Load() endfunction function! cargo#cmd(args) - execute "! cargo" a:args + " Trim trailing spaces. This is necessary since :terminal command parses + " trailing spaces as an empty argument. + let args = substitute(a:args, '\s\+$', '', '') + if has('terminal') + let cmd = 'terminal' + elseif has('nvim') + let cmd = 'noautocmd new | terminal' + else + let cmd = '!' + endif + execute cmd 'cargo' args endfunction function! s:nearest_cargo(...) abort diff --git a/autoload/go/config.vim b/autoload/go/config.vim index b70f7b75..9cd032f2 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -520,6 +520,10 @@ function! go#config#GoplsUsePlaceholders() abort return get(g:, 'go_gopls_use_placeholders', 0) endfunction +function! go#config#GoplsEnabled() abort + return get(g:, 'go_gopls_enabled', 1) +endfunction + " Set the default value. A value of "1" is a shortcut for this, for " compatibility reasons. if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1 diff --git a/autoload/rust.vim b/autoload/rust.vim index 658b90cc..8bb2b126 100644 --- a/autoload/rust.vim +++ b/autoload/rust.vim @@ -1,6 +1,5 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1 -" Author: Kevin Ballard " Description: Helper functions for Rust commands/mappings " Last Modified: May 27, 2014 " For bugs, patches and license go to https://github.com/rust-lang/rust.vim @@ -510,16 +509,23 @@ function! s:SearchTestFunctionNameUnderCursor() abort return matchstr(getline(test_func_line), '\m\C^\s*fn\s\+\zs\h\w*') endfunction -function! rust#Test(all, options) abort +function! rust#Test(mods, winsize, all, options) abort let manifest = findfile('Cargo.toml', expand('%:p:h') . ';') if manifest ==# '' return rust#Run(1, '--test ' . a:options) endif + " <count> defaults to 0, but we prefer an empty string + let winsize = a:winsize ? a:winsize : '' + if has('terminal') - let cmd = 'terminal ' + if has('patch-8.0.910') + let cmd = printf('%s noautocmd %snew | terminal ++curwin ', a:mods, winsize) + else + let cmd = printf('%s terminal ', a:mods) + endif elseif has('nvim') - let cmd = 'noautocmd new | terminal ' + let cmd = printf('%s noautocmd %snew | terminal ', a:mods, winsize) else let cmd = '!' let manifest = shellescape(manifest) diff --git a/autoload/xml/html5.vim b/autoload/xml/html5.vim index e9e05ee8..ed523b2c 100644 --- a/autoload/xml/html5.vim +++ b/autoload/xml/html5.vim @@ -746,6 +746,10 @@ let g:xmldata_html5 = { \ [], \ global_attributes \ ], +\ 'slot': [ + \ [], + \ extend(copy(global_attributes), {'name': []}) +\ ], \ 'small': [ \ phrasing_elements, \ global_attributes diff --git a/compiler/cucumber.vim b/compiler/cucumber.vim index 27b76888..af5dd4b6 100644 --- a/compiler/cucumber.vim +++ b/compiler/cucumber.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == - " Vim compiler file " Compiler: Cucumber " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2010 Aug 09 +" Last Change: 2016 Aug 29 if exists("current_compiler") finish diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index 7306f02b..8a6e98a9 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -1476,7 +1476,6 @@ endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1 augroup filetypedetect " vala, from vala.vim in arrufat/vala.vim -autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m au BufRead,BufNewFile *.vala,*.vapi,*.valadoc setfiletype vala augroup end endif diff --git a/ftplugin/ansible.vim b/ftplugin/ansible.vim index 7e94ba9d..1f83ddf7 100644 --- a/ftplugin/ansible.vim +++ b/ftplugin/ansible.vim @@ -1,9 +1,5 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1 -" Slow yaml highlighting workaround -if exists('+regexpengine') && ('®expengine' == 0) - setlocal regexpengine=1 -endif set isfname+=@-@ set path+=./../templates,./../files,templates,files diff --git a/ftplugin/cucumber.vim b/ftplugin/cucumber.vim index 296fd752..5d34213b 100644 --- a/ftplugin/cucumber.vim +++ b/ftplugin/cucumber.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == - " Vim filetype plugin " Language: Cucumber " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2013 Jun 01 +" Last Change: 2016 Aug 29 " Only do this when not done yet for this buffer if (exists("b:did_ftplugin")) diff --git a/ftplugin/dart.vim b/ftplugin/dart.vim index 99dd9a8c..69dae68c 100644 --- a/ftplugin/dart.vim +++ b/ftplugin/dart.vim @@ -27,6 +27,7 @@ let &l:errorformat = setlocal includeexpr=dart#resolveUri(v:fname) setlocal isfname+=: +setlocal iskeyword+=$ let b:undo_ftplugin = 'setl et< fo< sw< sts< com< cms< inex< isf<' diff --git a/ftplugin/git.vim b/ftplugin/git.vim index f26c62cf..4e17198b 100644 --- a/ftplugin/git.vim +++ b/ftplugin/git.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Vim filetype plugin " Language: generic git output " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 " Only do this when not done yet for this buffer if (exists("b:did_ftplugin")) diff --git a/ftplugin/gitcommit.vim b/ftplugin/gitcommit.vim index ca849a2c..14bc6425 100644 --- a/ftplugin/gitcommit.vim +++ b/ftplugin/gitcommit.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Vim filetype plugin " Language: git commit file " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 " Only do this when not done yet for this buffer if (exists("b:did_ftplugin")) diff --git a/ftplugin/gitrebase.vim b/ftplugin/gitrebase.vim index 1395c8ab..70fed8f4 100644 --- a/ftplugin/gitrebase.vim +++ b/ftplugin/gitrebase.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Vim filetype plugin " Language: git rebase --interactive " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2010 May 21 +" Last Change: 2016 Aug 29 " Only do this when not done yet for this buffer if (exists("b:did_ftplugin")) @@ -20,12 +20,15 @@ if !exists("b:undo_ftplugin") endif let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<" -function! s:choose(word) +function! s:choose(word) abort s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e endfunction -function! s:cycle() - call s:choose(get({'s':'edit','p':'squash','e':'reword','r':'fixup'},getline('.')[0],'pick')) +function! s:cycle(count) abort + let words = ['pick', 'edit', 'fixup', 'squash', 'reword', 'drop'] + let index = index(map(copy(words), 'v:val[0]'), getline('.')[0]) + let index = ((index < 0 ? 0 : index) + 10000 * len(words) + a:count) % len(words) + call s:choose(words[index]) endfunction command! -buffer -bar -range Pick :<line1>,<line2>call s:choose('pick') @@ -34,16 +37,16 @@ command! -buffer -bar -range Edit :<line1>,<line2>call s:choose('edit') command! -buffer -bar -range Reword :<line1>,<line2>call s:choose('reword') command! -buffer -bar -range Fixup :<line1>,<line2>call s:choose('fixup') command! -buffer -bar -range Drop :<line1>,<line2>call s:choose('drop') -command! -buffer -bar Cycle :call s:cycle() -" The above are more useful when they are mapped; for example: -"nnoremap <buffer> <silent> S :Cycle<CR> +command! -buffer -count=1 -bar -bang Cycle call s:cycle(<bang>0 ? -<count> : <count>) if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps") finish endif nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K' +nnoremap <buffer> <silent> <C-A> :<C-U><C-R>=v:count1<CR>Cycle<CR> +nnoremap <buffer> <silent> <C-X> :<C-U><C-R>=v:count1<CR>Cycle!<CR> -let b:undo_ftplugin = b:undo_ftplugin . "|nunmap <buffer> K" +let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> K'|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'" endif diff --git a/ftplugin/rust.vim b/ftplugin/rust.vim index d8de0f1a..dab5d5ab 100644 --- a/ftplugin/rust.vim +++ b/ftplugin/rust.vim @@ -3,7 +3,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1 " Language: Rust " Description: Vim ftplugin for Rust " Maintainer: Chris Morgan <me@chrismorgan.info> -" Maintainer: Kevin Ballard <kevin@sb.org> " Last Change: June 08, 2016 " For bugs, patches and license go to https://github.com/rust-lang/rust.vim @@ -139,7 +138,7 @@ command! -bar RustInfoToClipboard call rust#debugging#InfoToClipboard() command! -bar -nargs=1 RustInfoToFile call rust#debugging#InfoToFile(<f-args>) " See |:RustTest| for docs -command! -buffer -nargs=* -bang RustTest call rust#Test(<bang>0, <q-args>) +command! -buffer -nargs=* -count -bang RustTest call rust#Test(<q-mods>, <count>, <bang>0, <q-args>) if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args") let b:rust_last_rustc_args = [] diff --git a/ftplugin/vala.vim b/ftplugin/vala.vim new file mode 100644 index 00000000..e243d674 --- /dev/null +++ b/ftplugin/vala.vim @@ -0,0 +1,29 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m + +" Insert a CCode attribute for the symbol below the cursor +" https://wiki.gnome.org/Projects/Vala/LegacyBindings +function! CCode() abort + normal yiwO[CCode (cname = "pa")] +endfunction + +" Set Vala Coding Style +" https://wiki.gnome.org/Projects/Vala/Hacking#Coding_Style +function! ValaCodingStyle() abort + set ts=4 sts=4 sw=4 tw=0 wm=0 +endfunction + +command! -buffer -bar CCode call CCode() +command! -buffer -bar ValaCodingStyle call ValaCodingStyle() + +if get(g:, 'vala_syntax_folding_enabled', 1) + setlocal foldmethod=syntax +endif + +endif diff --git a/indent/cucumber.vim b/indent/cucumber.vim index f6565b8a..a9960b02 100644 --- a/indent/cucumber.vim +++ b/indent/cucumber.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == - " Vim indent file " Language: Cucumber " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2013 May 30 +" Last Change: 2017 Jun 13 if exists("b:did_indent") finish @@ -29,7 +29,7 @@ function! GetCucumberIndent() let line = getline(prevnonblank(v:lnum-1)) let cline = getline(v:lnum) let nline = getline(nextnonblank(v:lnum+1)) - let sw = exists('*shiftwidth') ? shiftwidth() : &sw + let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth() let syn = s:syn(prevnonblank(v:lnum-1)) let csyn = s:syn(v:lnum) let nsyn = s:syn(nextnonblank(v:lnum+1)) diff --git a/indent/gitconfig.vim b/indent/gitconfig.vim index 3e764dee..53dff35a 100644 --- a/indent/gitconfig.vim +++ b/indent/gitconfig.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Vim indent file " Language: git config file " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2013 May 30 +" Last Change: 2017 Jun 13 if exists("b:did_indent") finish @@ -22,7 +22,7 @@ if exists("*GetGitconfigIndent") endif function! GetGitconfigIndent() - let sw = exists('*shiftwidth') ? shiftwidth() : &sw + let sw = shiftwidth() let line = getline(prevnonblank(v:lnum-1)) let cline = getline(v:lnum) if line =~ '\\\@<!\%(\\\\\)*\\$' diff --git a/indent/rust.vim b/indent/rust.vim index 0c2876b8..69070b46 100644 --- a/indent/rust.vim +++ b/indent/rust.vim @@ -193,7 +193,12 @@ function GetRustIndent(lnum) " A line that ends with '.<expr>;' is probably an end of a long list " of method operations. if prevline =~# '\V\^\s\*.' && l:last_prevline_character ==# ';' - return indent(prevlinenum) - s:shiftwidth() + call cursor(a:lnum - 1, 1) + let l:scope_start = searchpair('{\|(', '', '}\|)', 'nbW', + \ 's:is_string_comment(line("."), col("."))') + if l:scope_start != 0 && l:scope_start < a:lnum + return indent(l:scope_start) + 4 + endif endif if l:last_prevline_character ==# "," diff --git a/syntax/basic/class.vim b/syntax/basic/class.vim index 73f63468..303d2077 100644 --- a/syntax/basic/class.vim +++ b/syntax/basic/class.vim @@ -15,7 +15,7 @@ syntax match typescriptClassName contained /\K\k*/ syntax region typescriptClassTypeParameter \ start=/</ end=/>/ - \ contains=typescriptTypeParameter + \ contains=@typescriptTypeParameterCluster \ nextgroup=typescriptClassBlock,typescriptClassExtends \ contained skipwhite skipnl @@ -47,7 +47,7 @@ syntax match typescriptInterfaceName contained /\k\+/ \ skipwhite skipnl syntax region typescriptInterfaceTypeParameter \ start=/</ end=/>/ - \ contains=typescriptTypeParameter + \ contains=@typescriptTypeParameterCluster \ nextgroup=typescriptObjectType,typescriptInterfaceExtends \ contained \ skipwhite skipnl diff --git a/syntax/basic/literal.vim b/syntax/basic/literal.vim index 533b228a..1f4fb854 100644 --- a/syntax/basic/literal.vim +++ b/syntax/basic/literal.vim @@ -16,7 +16,7 @@ syntax region typescriptString \ contains=typescriptSpecial,@Spell \ extend -syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{4,5}})|c\u|.)" +syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)" " From vim runtime " <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48> @@ -24,7 +24,7 @@ syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\| syntax region typescriptTemplate \ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ - \ contains=typescriptTemplateSubstitution + \ contains=typescriptTemplateSubstitution,typescriptSpecial,@Spell \ nextgroup=@typescriptSymbols \ skipwhite skipempty diff --git a/syntax/basic/object.vim b/syntax/basic/object.vim index a0d69c53..90c75a0a 100644 --- a/syntax/basic/object.vim +++ b/syntax/basic/object.vim @@ -2,9 +2,11 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == syntax region typescriptObjectLiteral matchgroup=typescriptBraces \ start=/{/ end=/}/ - \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName + \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword \ fold contained +syntax keyword typescriptObjectAsyncKeyword async contained + syntax match typescriptObjectLabel contained /\k\+\_s*/ \ nextgroup=typescriptObjectColon,@typescriptCallImpl \ skipwhite skipempty diff --git a/syntax/basic/type.vim b/syntax/basic/type.vim index af2b535f..4de74eeb 100644 --- a/syntax/basic/type.vim +++ b/syntax/basic/type.vim @@ -3,13 +3,17 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == " Types syntax match typescriptOptionalMark /?/ contained +syntax cluster typescriptTypeParameterCluster contains= + \ typescriptTypeParameter, + \ typescriptGenericDefault + syntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets \ start=/</ end=/>/ - \ contains=typescriptTypeParameter + \ contains=@typescriptTypeParameterCluster \ contained syntax match typescriptTypeParameter /\K\k*/ - \ nextgroup=typescriptConstraint,typescriptGenericDefault + \ nextgroup=typescriptConstraint \ contained skipwhite skipnl syntax keyword typescriptConstraint extends diff --git a/syntax/common.vim b/syntax/common.vim index cf0b7161..c7a755cc 100644 --- a/syntax/common.vim +++ b/syntax/common.vim @@ -111,6 +111,7 @@ if exists("did_typescript_hilink") HiLink typescriptMethodAccessor Operator HiLink typescriptAsyncFuncKeyword Keyword + HiLink typescriptObjectAsyncKeyword Keyword HiLink typescriptAsyncFor Keyword HiLink typescriptFuncKeyword Keyword HiLink typescriptAsyncFunc Keyword diff --git a/syntax/dart.vim b/syntax/dart.vim index 797e684b..103b1da2 100644 --- a/syntax/dart.vim +++ b/syntax/dart.vim @@ -28,7 +28,7 @@ syntax keyword dartConstant null syntax keyword dartTypedef this super class typedef enum mixin syntax keyword dartOperator new is as in syntax match dartOperator "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:" -syntax keyword dartType void var bool int double num dynamic +syntax keyword dartCoreType void var dynamic syntax keyword dartStatement return syntax keyword dartStorageClass static abstract final const factory syntax keyword dartExceptions throw rethrow try on catch finally @@ -51,27 +51,26 @@ syntax match dartLibrary "^\(library\|part of\|part\)\>" syntax match dartMetadata "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>" " Numbers -syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>" +syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>" " User Types -if !exists('dart_highlight_types') || dart_highlight_types - syntax match dartTypeName "\<[A-Z]\w*\>\|\<_[A-Z]\w*\>" -endif - -" Core libraries -if !exists('dart_corelib_highlight') || dart_corelib_highlight - syntax keyword dartCoreClasses BidirectionalIterator Comparable DateTime - \ Duration Expando Function Invocation Iterable Iterator List Map Match - \ Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String - \ StringBuffer StringSink Symbol Type - syntax keyword dartCoreTypedefs Comparator - syntax keyword dartCoreExceptions AbstractClassInstantiationError - \ ArgumentError AssertionError CastError ConcurrentModificationError - \ Error Exception FallThroughError FormatException - \ IntegerDivisionByZeroException NoSuchMethodError NullThrownError - \ OutOfMemoryError RangeError RuntimeError StackOverflowError StateError - \ TypeError UnimplementedError UnsupportedError -endif +syntax match dartUserType "\<_\?\u[[:alnum:]_\$]*\>" + +" Function highlighting +syntax match dartFunction "\zs\<\(_\?\l[[:alnum:]_\$]*\)\>*\s*\ze(" + +" SDK libraries +syntax keyword dartSdkClass BidirectionalIterator Comparable DateTime + \ Duration Expando Function Invocation Iterable Iterator List Map Match + \ Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String + \ StringBuffer StringSink Symbol Type bool int double num +syntax keyword dartSdkTypedef Comparator +syntax keyword dartSdkException AbstractClassInstantiationError + \ ArgumentError AssertionError CastError ConcurrentModificationError + \ Error Exception FallThroughError FormatException + \ IntegerDivisionByZeroException NoSuchMethodError NullThrownError + \ OutOfMemoryError RangeError RuntimeError StackOverflowError StateError + \ TypeError UnimplementedError UnsupportedError " Comments syntax keyword dartTodo contained TODO FIXME XXX @@ -119,21 +118,23 @@ highlight default link dartLineComment Comment highlight default link dartLineDocComment Comment highlight default link dartShebangLine Comment highlight default link dartConstant Constant -highlight default link dartTypedef Typedef highlight default link dartTodo Todo highlight default link dartKeyword Keyword -highlight default link dartType Type -highlight default link dartTypeName Type highlight default link dartInterpolation PreProc highlight default link dartDocLink SpecialComment highlight default link dartSpecialChar SpecialChar highlight default link dartLibrary Include highlight default link dartUri String highlight default link dartCombinator Keyword -highlight default link dartCoreClasses Type -highlight default link dartCoreTypedefs Typedef -highlight default link dartCoreExceptions Exception highlight default link dartMetadata PreProc +highlight default link dartSdkTypedef Typedef +highlight default link dartTypedef Typedef +highlight default link dartSdkException Exception +highlight default link dartSdkClass dartType +highlight default link dartCoreType dartType +highlight default link dartUserType dartType +highlight default link dartType Type +highlight default link dartFunction Function let b:current_syntax = "dart" let b:spell_options = "contained" diff --git a/syntax/dhall.vim b/syntax/dhall.vim index 3629900a..729daac1 100644 --- a/syntax/dhall.vim +++ b/syntax/dhall.vim @@ -6,7 +6,7 @@ if exists('b:current_syntax') finish endif -syntax match dhallInterpolation "\v\$\{[^\}]*\}" +syntax match dhallInterpolation "\v\$\{([^\}]|\\n)*\}" syntax keyword dhallTodo TODO FIXME syntax match dhallBrackets "[<>|]" syntax match dhallOperator "+\|*\|#" diff --git a/syntax/gitcommit.vim b/syntax/gitcommit.vim index 06125418..38cad35e 100644 --- a/syntax/gitcommit.vim +++ b/syntax/gitcommit.vim @@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Language: git commit file " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Filenames: *.git/COMMIT_EDITMSG -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 if exists("b:current_syntax") finish diff --git a/syntax/gitconfig.vim b/syntax/gitconfig.vim index 0a52f233..63865302 100644 --- a/syntax/gitconfig.vim +++ b/syntax/gitconfig.vim @@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Language: git config file " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Filenames: gitconfig, .gitconfig, *.git/config -" Last Change: 2010 May 21 +" Last Change: 2019 Sep 27 if exists("b:current_syntax") finish @@ -13,7 +13,7 @@ endif syn case ignore syn sync minlines=10 -syn match gitconfigComment "[#;].*" +syn match gitconfigComment "[#;].*" contains=@Spell syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' syn match gitconfigVariable "\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite diff --git a/syntax/gitrebase.vim b/syntax/gitrebase.vim index 3a980d64..5ef76243 100644 --- a/syntax/gitrebase.vim +++ b/syntax/gitrebase.vim @@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Language: git rebase --interactive " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Filenames: git-rebase-todo -" Last Change: 2013 May 30 +" Last Change: 2016 Aug 29 if exists("b:current_syntax") finish @@ -12,36 +12,49 @@ endif syn case match -syn match gitrebaseHash "\v<\x{7,40}>" contained -syn match gitrebaseCommit "\v<\x{7,40}>" nextgroup=gitrebaseSummary skipwhite +syn match gitrebaseHash "\v<\x{7,}>" contained +syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite -syn match gitrebaseBreak "\v^b%(reak)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseBreak "\v^b%(reak)=>" syn match gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite syn match gitrebaseNoop "\v^noop>" +syn match gitrebaseMerge "\v^m(erge)=>" nextgroup=gitrebaseMergeOption,gitrebaseName skipwhite +syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite +syn match gitrebaseReset "\v^r(eset)=>" nextgroup=gitrebaseName skipwhite syn match gitrebaseSummary ".*" contains=gitrebaseHash contained syn match gitrebaseCommand ".*" contained syn match gitrebaseComment "^\s*#.*" contains=gitrebaseHash syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained +syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained +syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained +syn match gitrebaseMergeComment "#" nextgroup=gitrebaseSummary skipwhite contained hi def link gitrebaseCommit gitrebaseHash hi def link gitrebaseHash Identifier -hi def link gitrebasePick Statement -hi def link gitrebaseReword Number +hi def link gitrebasePick Type +hi def link gitrebaseReword Conditional hi def link gitrebaseEdit PreProc -hi def link gitrebaseSquash Type -hi def link gitrebaseFixup Special -hi def link gitrebaseExec Function +hi def link gitrebaseSquash Statement +hi def link gitrebaseFixup Repeat +hi def link gitrebaseExec Operator hi def link gitrebaseBreak Macro hi def link gitrebaseDrop Comment hi def link gitrebaseNoop Comment +hi def link gitrebaseMerge Exception +hi def link gitrebaseLabel Label +hi def link gitrebaseReset Keyword hi def link gitrebaseSummary String hi def link gitrebaseComment Comment hi def link gitrebaseSquashError Error +hi def link gitrebaseMergeCommit gitrebaseCommit +hi def link gitrebaseMergeComment gitrebaseComment +hi def link gitrebaseName Tag let b:current_syntax = "gitrebase" diff --git a/syntax/gitsendemail.vim b/syntax/gitsendemail.vim index 17a6e449..d4bfb8b3 100644 --- a/syntax/gitsendemail.vim +++ b/syntax/gitsendemail.vim @@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 " Language: git send-email message " Maintainer: Tim Pope " Filenames: .gitsendemail.* -" Last Change: 2010 May 21 +" Last Change: 2016 Aug 29 if exists("b:current_syntax") finish diff --git a/syntax/go.vim b/syntax/go.vim index 2f97813d..38a4993c 100644 --- a/syntax/go.vim +++ b/syntax/go.vim @@ -164,15 +164,17 @@ endif syn match goSingleDecl /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst " Integers -syn match goDecimalInt "\<-\=\(0\|[1-9]\d*\)\%([Ee][-+]\=\d\+\)\=\>" -syn match goHexadecimalInt "\<-\=0[xX]\x\+\>" -syn match goHexadecimalError "\<-\=0[xX]\x*[^ \t0-9A-Fa-f]\S*\>" -syn match goOctalInt "\<-\=0\o\+\>" -syn match goOctalError "\<-\=0[XxBb\]]\@!\o*[^ \t0-7]\S*\>" -syn match goBinaryInt "\<-\=0[bB][01]\+\>" -syn match goBinaryError "\<-\=0[bB][01]*[^ \t01]\S*\>" +syn match goDecimalInt "\<-\=\(0\|[1-9]_\?\(\d\|\d\+_\?\d\+\)*\)\%([Ee][-+]\=\d\+\)\=\>" +syn match goDecimalError "\<-\=\(_\(\d\+_*\)\+\|\([1-9]\d*_*\)\+__\(\d\+_*\)\+\|\([1-9]\d*_*\)\+_\+\)\%([Ee][-+]\=\d\+\)\=\>" +syn match goHexadecimalInt "\<-\=0[xX]_\?\(\x\+_\?\)\+\>" +syn match goHexadecimalError "\<-\=0[xX]_\?\(\x\+_\?\)*\(\([^ \t0-9A-Fa-f_]\|__\)\S*\|_\)\>" +syn match goOctalInt "\<-\=0[oO]\?_\?\(\o\+_\?\)\+\>" +syn match goOctalError "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>" +syn match goBinaryInt "\<-\=0[bB]_\?\([01]\+_\?\)\+\>" +syn match goBinaryError "\<-\=0[bB]_\?[01_]*\([^ \t01_]\S*\|__\S*\|_\)\>" hi def link goDecimalInt Integer +hi def link goDecimalError Error hi def link goHexadecimalInt Integer hi def link goHexadecimalError Error hi def link goOctalInt Integer diff --git a/syntax/graphql.vim b/syntax/graphql.vim index 1a787816..25efe508 100644 --- a/syntax/graphql.vim +++ b/syntax/graphql.vim @@ -35,7 +35,7 @@ syn match graphqlDirective "\<@\h\w*\>" display syn match graphqlVariable "\<\$\h\w*\>" display syn match graphqlName "\<\h\w*\>" display syn match graphqlType "\<_*\u\w*\>" display -syn match graphqlConstant "\<[A-Z_]\+\>" display +syn match graphqlConstant "\<[_A-Z][_A-Z0-9]*\>" display syn keyword graphqlMetaFields __schema __type __typename diff --git a/syntax/html.vim b/syntax/html.vim index 41b725b6..87fce2d6 100644 --- a/syntax/html.vim +++ b/syntax/html.vim @@ -33,7 +33,7 @@ syn keyword htmlTagName contained article aside audio canvas command syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer syn keyword htmlTagName contained header hgroup keygen main mark meter menu menuitem nav output syn keyword htmlTagName contained progress ruby rt rp rb rtc section source summary time track video data -syn keyword htmlTagName contained template content shadow +syn keyword htmlTagName contained template content shadow slot syn keyword htmlTagName contained wbr bdi syn keyword htmlTagName contained picture diff --git a/syntax/i3config.vim b/syntax/i3config.vim index aac4c231..518cd93a 100644 --- a/syntax/i3config.vim +++ b/syntax/i3config.vim @@ -41,9 +41,9 @@ syn match i3ConfigFontNamespace /\w\+:/ contained contains=i3ConfigFontSeparator syn match i3ConfigFontContent /-\?\w\+\(-\+\|\s\+\|,\)/ contained contains=i3ConfigFontNamespace,i3ConfigFontSeparator,i3ConfigFontKeyword syn match i3ConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained syn match i3ConfigFont /^\s*font\s\+.*$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace -"syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace -"syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace -"syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace +syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace +syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace +syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace " variables syn match i3ConfigString /\(['"]\)\(.\{-}\)\1/ contained @@ -55,8 +55,8 @@ syn keyword i3ConfigInitializeKeyword set contained syn match i3ConfigInitialize /^\s*set\s\+.*$/ contains=i3ConfigVariable,i3ConfigInitializeKeyword,i3ConfigColor,i3ConfigString " Gaps -syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle contained -syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,number,i3ConfigVariable +syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained +syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,i3ConfigNumber,i3ConfigVariable syn keyword i3ConfigSmartGapKeyword on inverse_outer contained syn match i3ConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=i3ConfigSmartGapKeyword syn keyword i3ConfigSmartBorderKeyword on no_gaps contained @@ -64,19 +64,21 @@ syn match i3ConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contai " Keyboard bindings syn keyword i3ConfigAction toggle fullscreen restart key import kill shrink grow contained -syn keyword i3ConfigAction focus move split layout resize restore reload mute unmute exit contained +syn keyword i3ConfigAction focus move grow height width split layout resize restore reload mute unmute exit mode workspace container to contained syn match i3ConfigModifier /\w\++\w\+\(\(+\w\+\)\+\)\?/ contained contains=i3ConfigVariableModifier syn match i3ConfigNumber /\s\d\+/ contained +syn match i3ConfigUnit /\sp\(pt\|x\)/ contained +syn match i3ConfigUnitOr /\sor/ contained syn keyword i3ConfigBindKeyword bindsym bindcode exec gaps contained syn match i3ConfigBindArgument /--\w\+\(\(-\w\+\)\+\)\?\s/ contained -syn match i3ConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigBindArgument,i3ConfigNumber,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword +syn match i3ConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword " Floating syn keyword i3ConfigSizeSpecial x contained syn match i3ConfigNegativeSize /-/ contained syn match i3ConfigSize /-\?\d\+\s\?x\s\?-\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber,i3ConfigNegativeSize syn match i3ConfigFloating /^\s*floating_modifier\s\+\$\w\+\d\?/ contains=i3ConfigVariable -syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=Size +syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=i3ConfigSize " Orientation syn keyword i3ConfigOrientationKeyword vertical horizontal auto contained @@ -88,7 +90,7 @@ syn match i3ConfigLayout /^\s*workspace_layout\s\+\(default\|stacking\|tabbed\)\ " Border style syn keyword i3ConfigBorderStyleKeyword none normal pixel contained -syn match i3ConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\)\s\?$/ contains=i3ConfigBorderStyleKeyword,number +syn match i3ConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\)\s\?$/ contains=i3ConfigBorderStyleKeyword,i3ConfigNumber " Hide borders and edges syn keyword i3ConfigEdgeKeyword none vertical horizontal both smart smart_no_gaps contained @@ -97,7 +99,7 @@ syn match i3ConfigEdge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|b " Arbitrary commands for specific windows (for_window) syn keyword i3ConfigCommandKeyword for_window contained syn region i3ConfigWindowStringSpecial start=+"+ skip=+\\"+ end=+"+ contained contains=i3ConfigString -syn region i3ConfigWindowCommandSpecial start="\[" end="\]" contained contains=WindowStringSpacial,i3ConfigString +syn region i3ConfigWindowCommandSpecial start="\[" end="\]" contained contains=i3ConfigWindowStringSpacial,i3ConfigString syn match i3ConfigArbitraryCommand /^\s*for_window\s\+.*$/ contains=i3ConfigWindowCommandSpecial,i3ConfigCommandKeyword,i3ConfigBorderStyleKeyword,i3ConfigLayoutKeyword,i3ConfigOrientationKeyword,Size,i3ConfigNumber " Disable focus open opening @@ -127,6 +129,9 @@ syn match i3ConfigWorkspace /^\s*workspace\s\+.*$/ contains=i3ConfigWorkspaceKey syn keyword i3ConfigClientColorKeyword client focused focused_inactive unfocused urgent placeholder background contained syn match i3ConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable +syn keyword i3ConfigTitleAlignKeyword left center right contained +syn match i3ConfigTitleAlign /^\s*title_align\s\+.*$/ contains=i3ConfigTitleAlignKeyword + " Interprocess communication syn match i3ConfigInterprocessKeyword /ipc-socket/ contained syn match i3ConfigInterprocess /^\s*ipc-socket\s\+.*$/ contains=i3ConfigInterprocessKeyword @@ -175,10 +180,10 @@ syn match i3ConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=i3C " Group mode/bar syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained -syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,Bind,i3ConfigComment,Font,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend +syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend " Line continuation -syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,Bind,i3ConfigComment,Font,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend +syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend " Define the highlighting. hi! def link i3ConfigError Error @@ -191,6 +196,7 @@ hi! def link i3ConfigOrientationKeyword Type hi! def link i3ConfigMouseWarpingType Type hi! def link i3ConfigFocusFollowsMouseType Type hi! def link i3ConfigGapStyleKeyword Type +hi! def link i3ConfigTitleAlignKeyword Type hi! def link i3ConfigSmartGapKeyword Type hi! def link i3ConfigSmartBorderKeyword Type hi! def link i3ConfigLayoutKeyword Type @@ -201,9 +207,11 @@ hi! def link i3ConfigCommand Type hi! def link i3ConfigOutput Type hi! def link i3ConfigWindowCommandSpecial Type hi! def link i3ConfigFocusWrappingType Type +hi! def link i3ConfigUnitOr Type hi! def link i3ConfigFontSize Constant hi! def link i3ConfigColor Constant hi! def link i3ConfigNumber Constant +hi! def link i3ConfigUnit Constant hi! def link i3ConfigVariableAndModifier Constant hi! def link i3ConfigTimeUnit Constant hi! def link i3ConfigModifier Constant @@ -221,6 +229,7 @@ hi! def link i3ConfigFontKeyword Identifier hi! def link i3ConfigBindKeyword Identifier hi! def link i3ConfigOrientation Identifier hi! def link i3ConfigGapStyle Identifier +hi! def link i3ConfigTitleAlign Identifier hi! def link i3ConfigSmartGap Identifier hi! def link i3ConfigSmartBorder Identifier hi! def link i3ConfigLayout Identifier diff --git a/syntax/log.vim b/syntax/log.vim index dd343c98..40abeb34 100644 --- a/syntax/log.vim +++ b/syntax/log.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'log') == -1 " Vim syntax file " Language: Generic log file " Maintainer: MTDL9 <https://github.com/MTDL9> -" Latest Revision: 2019-04-16 +" Latest Revision: 2019-11-24 if exists('b:current_syntax') finish @@ -52,8 +52,8 @@ syn match logDate '\(\(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\) \)\?\(Jan\|Feb\|Mar\| syn match logTime '\d\{2}:\d\{2}:\d\{2}\(\.\d\{2,6}\)\?\(\s\?[-+]\d\{2,4}\|Z\)\?\>' nextgroup=logTimeZone,logSysColumns skipwhite " Follows logTime, matches UTC or PDT 2019 or 2019 EDT -syn match logTimeZone '\(UTC\|PDT\|EDT\|GMT\|EST\|KST\)\( \d\{4}\)\?' contained -syn match logTimeZone '\d\{4} \(UTC\|PDT\|EDT\|GMT\|EST\|KST\)' contained +syn match logTimeZone '[A-Z]\{2,5}\>\( \d\{4}\)\?' contained +syn match logTimeZone '\d\{4} [A-Z]\{2,5}\>' contained " Entities @@ -66,7 +66,7 @@ syn match logIPV4 '\<\d\{1,3}\(\.\d\{1,3}\)\{3}\>' syn match logIPV6 '\<\x\{1,4}\(:\x\{1,4}\)\{7}\>' syn match logMacAddress '\<\x\{2}\(:\x\{2}\)\{5}' syn match logFilePath '\<\w:\\[^\n|,; ()'"\]{}]\+' -syn match logFilePath '\/\w[^\n|,; ()'"\]{}]\+' +syn match logFilePath '[^a-zA-Z0-9"']\@<=\/\w[^\n|,; ()'"\]{}]\+' " Syslog Columns diff --git a/syntax/ps1.vim b/syntax/ps1.vim index d1aec431..d3be8a12 100644 --- a/syntax/ps1.vim +++ b/syntax/ps1.vim @@ -175,7 +175,7 @@ if version >= 508 || !exists("did_ps1_syn_inits") HiLink ps1Comment Comment HiLink ps1CommentTodo Todo HiLink ps1CommentDoc Tag - HiLink ps1CDocParam Todo + HiLink ps1CDocParam Identifier HiLink ps1Operator Operator HiLink ps1Repeat Repeat HiLink ps1RepeatAndCmdlet Repeat diff --git a/syntax/qml.vim b/syntax/qml.vim index ff2e597f..602a76f5 100644 --- a/syntax/qml.vim +++ b/syntax/qml.vim @@ -29,7 +29,7 @@ endif syn case ignore -syn cluster qmlExpr contains=qmlStringD,qmlString,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction +syn cluster qmlExpr contains=qmlStringD,qmlStringS,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction syn keyword qmlCommentTodo TODO FIXME XXX TBD contained syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" diff --git a/syntax/rst.vim b/syntax/rst.vim index 0679a396..3b14d63f 100644 --- a/syntax/rst.vim +++ b/syntax/rst.vim @@ -175,7 +175,7 @@ syn match rstStandaloneHyperlink contains=@NoSpell \ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]" syn region rstCodeBlock contained matchgroup=rstDirective - \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s*\n\%(\s*:.*:\s*.*\s*\n\)*\n\ze\z(\s\+\)+ + \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s*\(\S*\)\?\s*\n\%(\s*:.*:\s*.*\s*\n\)*\n\ze\z(\s\+\)+ \ skip=+^$+ \ end=+^\z1\@!+ \ contains=@NoSpell diff --git a/syntax/rust.vim b/syntax/rust.vim index b61caa5f..ca31c5cd 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -55,6 +55,7 @@ syn keyword rustKeyword mod trait nextgroup=rustIdentifier skipwhite skipe syn keyword rustStorage move mut ref static const syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/ syn keyword rustAwait await +syn match rustKeyword /\<try\>!\@!/ display syn keyword rustPubScopeCrate crate contained syn match rustPubScopeDelim /[()]/ contained diff --git a/syntax/swift.vim b/syntax/swift.vim index 5d68bc12..6c988338 100644 --- a/syntax/swift.vim +++ b/syntax/swift.vim @@ -187,6 +187,7 @@ syntax region swiftEscapedReservedWord start="`" end="`" oneline syntax keyword swiftAttributes \ @_exported \ @_functionBuilder + \ @_implementationOnly \ @_silgen_name \ @assignment \ @autoclosure diff --git a/syntax/terraform.vim b/syntax/terraform.vim index 45f1f618..452329b9 100644 --- a/syntax/terraform.vim +++ b/syntax/terraform.vim @@ -4830,10 +4830,9 @@ syn keyword terraSection connection output variable terraform locals syn keyword terraValueBool true false on off yes no syn keyword terraTodo contained TODO FIXME XXX BUG -syn cluster terraCommentGroup contains=terraTodo -syn region terraComment start="/\*" end="\*/" contains=@terraCommentGroup,@Spell -syn region terraComment start="#" end="$" contains=@terraCommentGroup,@Spell -syn region terraComment start="//" end="$" contains=@terraCommentGroup,@Spell +syn region terraComment start="/\*" end="\*/" contains=terraTodo,@Spell +syn region terraComment start="#" end="$" contains=terraTodo,@Spell +syn region terraComment start="//" end="$" contains=terraTodo,@Spell syn keyword terraResource resource nextgroup=terraResourceTypeStr skipwhite syn region terraResourceTypeStr start=/"/ end=/"/ contains=terraResourceTypeBI nextgroup=terraResourceName skipwhite @@ -4867,13 +4866,11 @@ syn match terraBraces "[\[\]]" """ skip \" in strings. """ we may also want to pass \\" into a function to escape quotes. syn region terraValueString start=/"/ skip=/\\\+"/ end=/"/ contains=terraStringInterp -syn region terraStringInterp matchgroup=terraBrackets start=/\${/ end=/}/ contains=terraValueFunction,terraValueVarSubscript,terraStringInterp contained +syn region terraStringInterp matchgroup=terraBraces start=/\${/ end=/}/ contained contains=ALL syn region terraHereDocText start=/<<-\?\z([a-z0-9A-Z]\+\)/ end=/^\s*\z1/ contains=terraStringInterp + "" TODO match keywords here, not a-z+ -syn region terraValueFunction matchgroup=terraBrackets start=/[a-z]\+(/ end=/)/ contains=terraValueString,terraValueFunction,terraValueVarSubscript contained -" User variables or module outputs can be lists or maps, and accessed with -" var.map["foo"] -syn region terraValueVarSubscript start=/\(\<var\|\<module\)\.[a-z0-9_-]\+\[/ end=/\]/ contains=terraValueString,terraValueFunction,terraValueVarSubscript contained +syn match terraValueFunction "[a-z]\+(\@=" """ HCL2 syn keyword terraContent content @@ -4892,7 +4889,6 @@ syn region terraBlock matchgroup=terraBraces start="{" end="}" fold transparent hi def link terraComment Comment hi def link terraTodo Todo -hi def link terraBrackets Operator hi def link terraProvider Structure hi def link terraBraces Delimiter hi def link terraProviderName String @@ -4905,7 +4901,6 @@ hi def link terraDataName String hi def link terraDataTypeBI Tag hi def link terraDataTypeStr String hi def link terraSection Structure -hi def link terraStringInterp Identifier hi def link terraValueBool Boolean hi def link terraValueDec Number hi def link terraValueHexaDec Number @@ -4915,8 +4910,7 @@ hi def link terraProvisioner Structure hi def link terraProvisionerName String hi def link terraModule Structure hi def link terraModuleName String -hi def link terraValueFunction Identifier -hi def link terraValueVarSubscript Identifier +hi def link terraValueFunction Function hi def link terraDynamic Structure hi def link terraDynamicName String hi def link terraContent Structure diff --git a/syntax/zig.vim b/syntax/zig.vim index a0b8330a..1fade5cd 100644 --- a/syntax/zig.vim +++ b/syntax/zig.vim @@ -33,12 +33,12 @@ syn match zigBuiltinFn "\v\@(addWithOverflow|ArgType|atomicLoad|bitCast|breakpoi syn match zigBuiltinFn "\v\@(alignCast|alignOf|cDefine|cImport|cInclude)>" syn match zigBuiltinFn "\v\@(cUndef|canImplicitCast|clz|cmpxchgWeak|cmpxchgStrong|compileError)>" syn match zigBuiltinFn "\v\@(compileLog|ctz|popCount|divExact|divFloor|divTrunc)>" -syn match zigBuiltinFn "\v\@(embedFile|export|tagName|TagType|errorName)>" +syn match zigBuiltinFn "\v\@(embedFile|export|tagName|TagType|errorName|call)>" syn match zigBuiltinFn "\v\@(errorReturnTrace|fence|fieldParentPtr|field|unionInit)>" -syn match zigBuiltinFn "\v\@(frameAddress|import|inlineCall|newStackCall|asyncCall|intToPtr|IntType)>" +syn match zigBuiltinFn "\v\@(frameAddress|import|newStackCall|asyncCall|intToPtr|IntType)>" syn match zigBuiltinFn "\v\@(maxValue|memberCount|memberName|memberType|as)>" syn match zigBuiltinFn "\v\@(memcpy|memset|minValue|mod|mulWithOverflow|splat)>" -syn match zigBuiltinFn "\v\@(noInlineCall|bitOffsetOf|byteOffsetOf|OpaqueType|panic|ptrCast)>" +syn match zigBuiltinFn "\v\@(bitOffsetOf|byteOffsetOf|OpaqueType|panic|ptrCast)>" syn match zigBuiltinFn "\v\@(ptrToInt|rem|returnAddress|setCold|Type|shuffle)>" syn match zigBuiltinFn "\v\@(setRuntimeSafety|setEvalBranchQuota|setFloatMode)>" syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl|hasField)>" |