summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2019-10-16 14:56:00 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2019-10-16 14:56:00 +0200
commit199846c6d87c9ea60eb5f9f8f68e2d9ea4f02b2a (patch)
tree43a35af46ea780decdd9146601eef6af561cb14c
parentf95026252c5a31242903a98c741887696dfbb11f (diff)
downloadvim-polyglot-199846c6d87c9ea60eb5f9f8f68e2d9ea4f02b2a.tar.gz
vim-polyglot-199846c6d87c9ea60eb5f9f8f68e2d9ea4f02b2a.zip
Update
-rw-r--r--after/syntax/jsx_pretty.vim2
-rw-r--r--autoload/rust.vim13
-rw-r--r--autoload/rust/tags.vim3
-rw-r--r--autoload/rustfmt.vim16
-rw-r--r--autoload/terraform.vim53
-rw-r--r--ftplugin/meson.vim3
-rw-r--r--ftplugin/plantuml.vim8
-rw-r--r--ftplugin/terraform.vim2
-rw-r--r--ftplugin/typescript.vim2
-rw-r--r--indent/plantuml.vim2
-rw-r--r--syntax/crystal.vim2
-rw-r--r--syntax/plantuml.vim23
-rw-r--r--syntax/rust.vim18
-rw-r--r--syntax/svelte.vim9
14 files changed, 86 insertions, 70 deletions
diff --git a/after/syntax/jsx_pretty.vim b/after/syntax/jsx_pretty.vim
index fd5c9bde..b4d0e0f0 100644
--- a/after/syntax/jsx_pretty.vim
+++ b/after/syntax/jsx_pretty.vim
@@ -38,7 +38,7 @@ syntax region jsxElement
" detect jsx region
syntax region jsxRegion
- \ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
+ \ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?,]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
\ end=++
\ contains=jsxElement
diff --git a/autoload/rust.vim b/autoload/rust.vim
index e8a675f3..b6ab1c68 100644
--- a/autoload/rust.vim
+++ b/autoload/rust.vim
@@ -398,10 +398,19 @@ function! s:RmDir(path)
echoerr 'Attempted to delete empty path'
return 0
elseif a:path ==# '/' || a:path ==# $HOME
- echoerr 'Attempted to delete protected path: ' . a:path
+ let l:path = expand(a:path)
+ if l:path ==# '/' || l:path ==# $HOME
+ echoerr 'Attempted to delete protected path: ' . a:path
+ return 0
+ endif
+ endif
+
+ if !isdirectory(a:path)
return 0
endif
- return system("rm -rf " . shellescape(a:path))
+
+ " delete() returns 0 when removing file successfully
+ return delete(a:path, 'rf') == 0
endfunction
" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
diff --git a/autoload/rust/tags.vim b/autoload/rust/tags.vim
index 21faaabb..e75fb208 100644
--- a/autoload/rust/tags.vim
+++ b/autoload/rust/tags.vim
@@ -8,7 +8,8 @@ let s:checked_ctags = 0
function! rust#tags#IsUCtags() abort
if s:checked_ctags == 0
- if system('ctags --version') =~? 'universal ctags'
+ let l:ctags_bin = get(g:, 'tagbar_ctags_bin', 'ctags')
+ if system(l:ctags_bin.' --version') =~? 'universal ctags'
let s:ctags_is_uctags = 1
endif
let s:checked_ctags = 1
diff --git a/autoload/rustfmt.vim b/autoload/rustfmt.vim
index 151ac82d..53ea9b28 100644
--- a/autoload/rustfmt.vim
+++ b/autoload/rustfmt.vim
@@ -112,7 +112,7 @@ function! s:DeleteLines(start, end) abort
silent! execute a:start . ',' . a:end . 'delete _'
endfunction
-function! s:RunRustfmt(command, tmpname, fail_silently)
+function! s:RunRustfmt(command, tmpname, from_writepre)
mkview!
let l:stderr_tmpname = tempname()
@@ -149,8 +149,10 @@ function! s:RunRustfmt(command, tmpname, fail_silently)
let l:open_lwindow = 0
if v:shell_error == 0
- " remove undo point caused via BufWritePre
- try | silent undojoin | catch | endtry
+ if a:from_writepre
+ " remove undo point caused via BufWritePre
+ try | silent undojoin | catch | endtry
+ endif
if a:tmpname ==# ''
let l:content = l:out
@@ -170,7 +172,7 @@ function! s:RunRustfmt(command, tmpname, fail_silently)
call setloclist(0, [])
let l:open_lwindow = 1
endif
- elseif g:rustfmt_fail_silently == 0 && a:fail_silently == 0
+ elseif g:rustfmt_fail_silently == 0 && !a:from_writepre
" otherwise get the errors and put them in the location list
let l:errors = []
@@ -224,12 +226,12 @@ function! rustfmt#FormatRange(line1, line2)
let l:tmpname = tempname()
call writefile(getline(1, '$'), l:tmpname)
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
- call s:RunRustfmt(command, l:tmpname, 0)
+ call s:RunRustfmt(command, l:tmpname, v:false)
call delete(l:tmpname)
endfunction
function! rustfmt#Format()
- call s:RunRustfmt(s:RustfmtCommand(), '', 0)
+ call s:RunRustfmt(s:RustfmtCommand(), '', v:false)
endfunction
function! rustfmt#Cmd()
@@ -257,7 +259,7 @@ function! rustfmt#PreWrite()
return
endif
- call s:RunRustfmt(s:RustfmtCommand(), '', 1)
+ call s:RunRustfmt(s:RustfmtCommand(), '', v:true)
endfunction
diff --git a/autoload/terraform.vim b/autoload/terraform.vim
index da36751e..b156b6b9 100644
--- a/autoload/terraform.vim
+++ b/autoload/terraform.vim
@@ -31,33 +31,34 @@ function! terraform#align()
endif
endfunction
-function! terraform#commands(A, L, P)
- return [
- \ 'apply',
- \ 'console',
- \ 'destroy',
- \ 'env',
- \ 'fmt',
- \ 'get',
- \ 'graph',
- \ 'import',
- \ 'init',
- \ 'output',
- \ 'plan',
- \ 'providers',
- \ 'refresh',
- \ 'show',
- \ 'taint',
- \ 'untaint',
- \ 'validate',
- \ 'version',
- \ 'workspace',
- \ '0.12upgrade',
- \ 'debug',
- \ 'force-unlock',
- \ 'push',
- \ 'state'
+function! terraform#commands(ArgLead, CmdLine, CursorPos)
+ let l:commands = [
+ \ 'apply',
+ \ 'console',
+ \ 'destroy',
+ \ 'env',
+ \ 'fmt',
+ \ 'get',
+ \ 'graph',
+ \ 'import',
+ \ 'init',
+ \ 'output',
+ \ 'plan',
+ \ 'providers',
+ \ 'refresh',
+ \ 'show',
+ \ 'taint',
+ \ 'untaint',
+ \ 'validate',
+ \ 'version',
+ \ 'workspace',
+ \ '0.12upgrade',
+ \ 'debug',
+ \ 'force-unlock',
+ \ 'push',
+ \ 'state'
\ ]
+ return join(l:commands, "\n")
endfunction
endif
diff --git a/ftplugin/meson.vim b/ftplugin/meson.vim
index 2f4abd9b..e401158d 100644
--- a/ftplugin/meson.vim
+++ b/ftplugin/meson.vim
@@ -10,6 +10,9 @@ let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim
+setlocal commentstring=#\ %s
+setlocal comments=:#
+
setlocal shiftwidth=2
setlocal softtabstop=2
diff --git a/ftplugin/plantuml.vim b/ftplugin/plantuml.vim
index b17f88ba..9db919de 100644
--- a/ftplugin/plantuml.vim
+++ b/ftplugin/plantuml.vim
@@ -37,10 +37,10 @@ endif
setlocal comments=s1:/',mb:',ex:'/,:' commentstring=/'%s'/ formatoptions-=t formatoptions+=croql
-let b:endwise_addition = '\=index(["note","legend"], submatch(0))!=-1 ? "end " . submatch(0) : "end"'
-let b:endwise_words = 'loop,group,alt,note,legend'
-let b:endwise_pattern = '^\s*\zs\<\(loop\|group\|alt\|note\ze[^:]*$\|legend\)\>.*$'
-let b:endwise_syngroups = 'plantumlKeyword'
+let b:endwise_addition = '\=index(["dot","mindmap","uml","salt","wbs"], submatch(0))!=-1 ? "@end" . submatch(0) : index(["note","legend"], submatch(0))!=-1 ? "end " . submatch(0) : "end"'
+let b:endwise_words = 'loop,group,alt,note,legend,startdot,startmindmap,startuml,startsalt,startwbs'
+let b:endwise_pattern = '^\s*\zs\(loop\|group\|alt\|note\ze[^:]*$\|legend\|@start\zs\(dot\|mindmap\|uml\|salt\|wbs\)\)\>.*$'
+let b:endwise_syngroups = 'plantumlKeyword,plantumlPreProc'
let &cpoptions = s:cpo_save
unlet s:cpo_save
diff --git a/ftplugin/terraform.vim b/ftplugin/terraform.vim
index 4426a890..3786648f 100644
--- a/ftplugin/terraform.vim
+++ b/ftplugin/terraform.vim
@@ -47,7 +47,7 @@ endif
let s:cpo_save = &cpoptions
set cpoptions&vim
-command! -nargs=+ -complete=customlist,terraform#commands -buffer Terraform execute '!terraform '.<q-args>. ' -no-color'
+command! -nargs=+ -complete=custom,terraform#commands -buffer Terraform execute '!terraform '.<q-args>. ' -no-color'
command! -nargs=0 -buffer TerraformFmt call terraform#fmt()
let b:undo_ftplugin .= '|delcommand Terraform|delcommand TerraformFmt'
diff --git a/ftplugin/typescript.vim b/ftplugin/typescript.vim
index 60992bee..148eff9e 100644
--- a/ftplugin/typescript.vim
+++ b/ftplugin/typescript.vim
@@ -34,7 +34,7 @@ endfunction
set path+=./node_modules/**,node_modules/**
set include=import\_s.\\zs[^'\"]*\\ze
set includeexpr=TsIncludeExpr(v:fname)
-set suffixesadd=.ts
+set suffixesadd+=.ts
"
" TagBar
diff --git a/indent/plantuml.vim b/indent/plantuml.vim
index 53a42f3e..d2d0aa99 100644
--- a/indent/plantuml.vim
+++ b/indent/plantuml.vim
@@ -77,7 +77,7 @@ endfunction
function! s:getIncIndent() abort
" Function to determine the s:incIndent pattern
return
- \ '^\s*\%(class\|object\|interface\|partition\|rectangle\|enum\|namespace\)\>.*{\s*$\|' .
+ \ '^\s*\%(class\|object\|interface\|partition\|rectangle\|enum\|namespace\|package\)\>.*{\s*$\|' .
\ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' .
\ '^\s*ref\>[^:]*$\|' .
\ '^\s*[hr]\?note\>\%(\%("[^"]*" \<as\>\)\@![^:]\)*$\|' .
diff --git a/syntax/crystal.vim b/syntax/crystal.vim
index edfd327e..8fdd2a6b 100644
--- a/syntax/crystal.vim
+++ b/syntax/crystal.vim
@@ -290,7 +290,7 @@ if !exists('g:crystal_no_special_methods')
syn match crystalInclude "\<include\>[?!]\@!" display
syn keyword crystalInclude extend require
syn keyword crystalKeyword caller typeof pointerof sizeof instance_sizeof
- syn match crystalRecord "\<record\>[?!]\@!" display
+ syn match crystalRecord "\<record\%(\s\+\u\w*\)\@=" display
endif
" Macro
diff --git a/syntax/plantuml.vim b/syntax/plantuml.vim
index 7bcc9181..334cf5f8 100644
--- a/syntax/plantuml.vim
+++ b/syntax/plantuml.vim
@@ -20,7 +20,7 @@ let b:current_syntax = 'plantuml'
syntax sync minlines=100
-syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|wbs\)\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\)\s*.*/ contains=plantumlDir
+syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|wbs\|gantt\)\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\|gantt\)\s*.*/ contains=plantumlDir
syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained
" type
@@ -34,12 +34,16 @@ syntax keyword plantumlClassKeyword class interface
" Exclude 'top to bottom direction'
syntax keyword plantumlKeyword accross activate again allow_mixing allowmixing also alt as autonumber bottom
syntax keyword plantumlKeyword box break caption center create critical deactivate destroy down else elseif end
-syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left
+syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left in at are to the and
syntax keyword plantumlKeyword legend link loop mainframe namespace newpage note of on opt order over package
syntax keyword plantumlKeyword page par partition ref repeat return right rnote rotate show skin skinparam
syntax keyword plantumlKeyword start stop title top up while
" Not in 'java - jar plantuml.jar - language' output
syntax keyword plantumlKeyword then detach split sprite
+" gantt
+syntax keyword plantumlTypeKeyword project monday tuesday wednesday thursday friday saturday sunday
+syntax keyword plantumlKeyword starts ends start end closed day after colored lasts happens
+
syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained
syntax match plantumlColor /#[0-9A-Fa-f]\{6\}\>/
@@ -136,6 +140,7 @@ syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\.\{
" Usecase diagram
syntax match plantumlUsecaseActor /:.\{-1,}:/ contains=plantumlSpecialString
+
" Mindmap diagram
let s:mindmapHilightLinks = [
\ 'WarningMsg', 'Directory', 'Special', 'MoreMsg', 'Statement', 'Title',
@@ -143,18 +148,20 @@ let s:mindmapHilightLinks = [
\ 'Function', 'Todo'
\ ]
-syntax match plantumlMindmap1 /^[-+*][_<>]\?/ contained
-
let i = 1
let contained = []
while i < len(s:mindmapHilightLinks)
- execute "syntax match plantumlMindmap" . i . " /^\\%(\\s\\|[-+*]\\)\\{" . (i - 1) . "}[-+*][_<>]\\?/ contained"
- execute "highlight default link plantumlMindmap" . i . " " . s:mindmapHilightLinks[i - 1]
- call add(contained, "plantumlMindmap" . i)
+ execute 'syntax match plantumlMindmap' . i . ' /^\([-+*]\)\1\{' . (i - 1) . '}_\?\s\+/ contained'
+ execute 'syntax match plantumlMindmap' . i . ' /^\s\{' . (i - 1) . '}\*_\?\s\+/ contained'
+ execute 'highlight default link plantumlMindmap' . i . ' ' . s:mindmapHilightLinks[i - 1]
+ call add(contained, 'plantumlMindmap' . i)
let i = i + 1
endwhile
-execute "syntax region plantumlMindmap oneline start=/^\\s*[-+*]_\\?/ end=/$/ contains=" . join(contained, ',')
+execute 'syntax region plantumlMindmap oneline start=/^\([-+*]\)\1*_\?\s/ end=/$/ contains=' . join(contained, ',')
+" Markdown syntax
+execute 'syntax region plantumlMindmap oneline start=/^\s*\*_\?\s/ end=/$/ contains=' . join(contained, ',')
+
" Skinparam keywords
syntax case ignore
diff --git a/syntax/rust.vim b/syntax/rust.vim
index e9f41d19..b61caa5f 100644
--- a/syntax/rust.vim
+++ b/syntax/rust.vim
@@ -36,7 +36,7 @@ syn match rustAssert "\<assert\(\w\)*!" contained
syn match rustPanic "\<panic\(\w\)*!" contained
syn match rustAsync "\<async\%(\s\|\n\)\@="
syn keyword rustKeyword break
-syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty
+syn keyword rustKeyword box
syn keyword rustKeyword continue
syn keyword rustKeyword crate
syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
@@ -68,14 +68,6 @@ 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 rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
-" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
-" we don't, we'll just define temporary contained rules to handle balancing
-" delimiters.
-syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent
-syn region rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent
-" {} are handled by rustFoldBraces
-
syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount
syn match rustMacroRepeatCount ".\?[*+]" contained
syn match rustMacroVariable "$\w\+"
@@ -154,9 +146,9 @@ syn match rustEscapeError display contained /\\./
syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/
syn match rustStringContinuation display contained /\\\n\s*/
-syn region rustString start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
-syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
-syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
+syn region rustString matchgroup=rustStringDelimiter start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
+syn region rustString matchgroup=rustStringDelimiter start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
+syn region rustString matchgroup=rustStringDelimiter start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
" Match attributes with either arbitrary syntax or special highlighting for
" derives. We still highlight strings and comments inside of the attribute.
@@ -296,6 +288,7 @@ hi def link rustEscapeUnicode rustEscape
hi def link rustEscapeError Error
hi def link rustStringContinuation Special
hi def link rustString String
+hi def link rustStringDelimiter String
hi def link rustCharacterInvalid Error
hi def link rustCharacterInvalidUnicode rustCharacterInvalid
hi def link rustCharacter Character
@@ -352,7 +345,6 @@ hi def link rustLifetime Special
hi def link rustLabel Label
hi def link rustExternCrate rustKeyword
hi def link rustObsoleteExternMod Error
-hi def link rustBoxPlacementParens Delimiter
hi def link rustQuestionMark Special
hi def link rustAsync rustKeyword
hi def link rustAwait rustKeyword
diff --git a/syntax/svelte.vim b/syntax/svelte.vim
index 373d8ac5..e4b5f27d 100644
--- a/syntax/svelte.vim
+++ b/syntax/svelte.vim
@@ -8,8 +8,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'svelte') == -1
" URL: https://github.com/evanleck/vim-svelte
"
" Like vim-jsx, this depends on the pangloss/vim-javascript syntax package (and
-" is tested against it exclusively). If you're using vim-polyglot (like I am),
-" then you're all set.
+" is tested against it exclusively). If you're using vim-polyglot, then you're
+" all set.
if exists("b:current_syntax")
finish
@@ -26,13 +26,14 @@ syntax match htmlTagName contained "\<[a-zA-Z:\.]*\>"
" "bind:something", etc.
syntax match svelteKeyword "\<[a-z]\+:[a-zA-Z|]\+=" contained containedin=htmlTag
+" Mixed-case attributes are likely props.
+syntax match svelteKeyword "\<[a-z]\+:[a-zA-Z|]\+=" contained containedin=htmlTag
+
" The "slot" attribute has special meaning.
syntax keyword svelteKeyword slot contained containedin=htmlTag
" According to vim-jsx, you can let jsBlock take care of ending the region.
" https://github.com/mxw/vim-jsx/blob/master/after/syntax/jsx.vim
-"
-" ALLBUT,htmlSpecialTagName keeps Vim from marking CSS regions as jsBlock.
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
" Block conditionals.