diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 15:44:43 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 15:44:43 +0200 |
commit | 664aa988f6d9cdb7b75218666fbe348c85ef8b29 (patch) | |
tree | 306173199576430e6133a1ed137bd80bbc2fb01b /autoload | |
parent | 3ddca5da461ebfaa82104f82e3cbf19d1c326ade (diff) | |
download | vim-polyglot-664aa988f6d9cdb7b75218666fbe348c85ef8b29.tar.gz vim-polyglot-664aa988f6d9cdb7b75218666fbe348c85ef8b29.zip |
Update
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/go/config.vim | 10 | ||||
-rw-r--r-- | autoload/jsx_pretty/indent.vim | 6 | ||||
-rw-r--r-- | autoload/jsx_pretty/syntax.vim | 218 | ||||
-rw-r--r-- | autoload/rust.vim | 4 | ||||
-rw-r--r-- | autoload/rust/debugging.vim | 6 | ||||
-rw-r--r-- | autoload/rust/tags.vim | 21 | ||||
-rw-r--r-- | autoload/rustfmt.vim | 7 | ||||
-rw-r--r-- | autoload/terraform.vim | 53 |
8 files changed, 58 insertions, 267 deletions
diff --git a/autoload/go/config.vim b/autoload/go/config.vim index 787c4e2a..e3f16179 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -25,10 +25,12 @@ endfunction function! go#config#SetBuildTags(value) abort if a:value is '' silent! unlet g:go_build_tags + call go#lsp#ResetWorkspaceDirectories() return endif let g:go_build_tags = a:value + call go#lsp#ResetWorkspaceDirectories() endfunction function! go#config#TestTimeout() abort @@ -51,6 +53,14 @@ function! go#config#TermMode() abort return get(g:, 'go_term_mode', 'vsplit') endfunction +function! go#config#TermCloseOnExit() abort + return get(g:, 'go_term_close_on_exit', 1) +endfunction + +function! go#config#SetTermCloseOnExit(value) abort + let g:go_term_close_on_exit = a:value +endfunction + function! go#config#TermEnabled() abort return has('nvim') && get(g:, 'go_term_enabled', 0) endfunction diff --git a/autoload/jsx_pretty/indent.vim b/autoload/jsx_pretty/indent.vim index 428c366d..22ede621 100644 --- a/autoload/jsx_pretty/indent.vim +++ b/autoload/jsx_pretty/indent.vim @@ -90,6 +90,9 @@ function! jsx_pretty#indent#get(js_indent) else return prev_ind + s:sw() endif + elseif !s:syn_xmlish(prev_syn_sol) && !s:syn_js_comment(prev_syn_sol) && s:syn_jsx_attrib(current_syn) + " For #79 + return prev_ind + s:sw() " { " <div></div> " ##} <-- @@ -176,7 +179,8 @@ function! jsx_pretty#indent#get(js_indent) return prev_ind + s:sw() endif endif - elseif s:syn_jsx_escapejs(current_syn_eol) + elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol) + " For `} of template syntax let pair_line = searchpair('{', '', '}', 'bW') return indent(pair_line) elseif line =~ '^/[/*]' " js comment in jsx tag diff --git a/autoload/jsx_pretty/syntax.vim b/autoload/jsx_pretty/syntax.vim deleted file mode 100644 index eac1f92a..00000000 --- a/autoload/jsx_pretty/syntax.vim +++ /dev/null @@ -1,218 +0,0 @@ -if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1 - finish -endif - -function! jsx_pretty#syntax#highlight() - - let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0) - - " <tag id="sample"> - " ~~~~~~~~~~~~~~~~~ - " and self close tag - " <tag id="sample" /> - " ~~~~~~~~~~~~~~~~~~~ - syntax region jsxTag - \ start=+<+ - \ matchgroup=jsxOpenPunct - \ end=+>+ - \ matchgroup=NONE - \ end=+\(/\_s*>\)\@=+ - \ contained - \ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator - \ keepend - \ extend - - " <tag></tag> - " ~~~~~~~~~~~ - " and fragment - " <></> - " ~~~~~ - " and self close tag - " <tag /> - " ~~~~~~~ - syntax region jsxElement - \ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+ - \ end=+/\_s*>+ - \ end=+<\_s*/\_s*\z1\_s*>+ - \ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell - \ keepend - \ extend - \ contained - \ fold - - " detect jsx region - syntax region jsxRegion - \ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+ - \ end=++ - \ contains=jsxElement - - " <tag key={this.props.key}> - " ~~~~~~~~~~~~~~~~ - syntax region jsxEscapeJs - \ start=+{+ - \ end=++ - \ extend - \ contained - \ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock - - " <tag key={this.props.key}> - " ~~~~ - " and fragment start tag - " <> - " ~~ - exe 'syntax region jsxOpenTag - \ matchgroup=jsxOpenPunct - \ start=+<+ - \ end=+>+ - \ matchgroup=NONE - \ end=+\>+ - \ contained - \ contains=jsxTagName - \ nextgroup=jsxAttrib - \ skipwhite - \ skipempty ' .(s:highlight_close_tag ? 'transparent' : '') - - " <foo.bar> - " ~ - syntax match jsxDot +\.+ contained display - - " <foo:bar> - " ~ - syntax match jsxNamespace +:+ contained display - - " <tag id="sample"> - " ~ - syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite - - " <tag /> - " ~~ - syntax match jsxCloseString +/\_s*>+ contained - - " </tag> - " ~~~~~~ - " and fragment close tag - " </> - " ~~~ - syntax region jsxCloseTag - \ matchgroup=jsxClosePunct - \ start=+<\_s*/+ - \ end=+>+ - \ contained - \ contains=jsxTagName - - " <tag key={this.props.key}> - " ~~~ - syntax match jsxAttrib - \ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+ - \ contained - \ nextgroup=jsxEqual - \ skipwhite - \ skipempty - \ contains=jsxAttribKeyword - \ display - - " <MyComponent ...> - " ~~~~~~~~~~~ - " NOT - " <someCamel ...> - " ~~~~~ - exe 'syntax match jsxComponentName - \ +\<[A-Z][\$0-9A-Za-z]\+\>+ - \ contained - \ display ' .(s:highlight_close_tag ? 'transparent' : '') - - " <tag key={this.props.key}> - " ~~~ - exe 'syntax match jsxTagName - \ +\<[-:_\.\$0-9A-Za-z]\+\>+ - \ contained - \ contains=jsxComponentName,jsxDot,jsxNamespace - \ nextgroup=jsxAttrib - \ skipempty - \ skipwhite - \ display ' .(s:highlight_close_tag ? 'transparent' : '') - - " <tag id="sample"> - " ~~~~~~~~ - " and - " <tag id='sample'> - " ~~~~~~~~ - syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display - - let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw']) - let s:enable_tagged_jsx = !empty(s:tags) - - " add support to JSX inside the tagged template string - " https://github.com/developit/htm - if s:enable_tagged_jsx - exe 'syntax region jsxTaggedRegion - \ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1 - \ end=+`+me=e-1 - \ extend - \ contained - \ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB - \ contains=jsxElement' - - syntax region jsxEscapeJs - \ start=+\${+ - \ end=++ - \ extend - \ contained - \ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation - - syntax region jsxOpenTag - \ matchgroup=jsxOpenPunct - \ start=+<\%(\${\)\@=+ - \ matchgroup=NONE - \ end=++ - \ contained - \ contains=jsxEscapeJs - \ nextgroup=jsxAttrib,jsxSpreadOperator - \ skipwhite - \ skipempty - - syntax keyword jsxAttribKeyword class contained display - - syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite - - syntax match jsxCloseTag +<//>+ display - - syntax match jsxComment +<!--\_.\{-}-->+ display - endif - - " Highlight the tag name - highlight def link jsxTag Function - highlight def link jsxTagName Identifier - highlight def link jsxComponentName Function - - highlight def link jsxAttrib Type - highlight def link jsxAttribKeyword jsxAttrib - highlight def link jsxEqual Operator - highlight def link jsxString String - highlight def link jsxDot Operator - highlight def link jsxNamespace Operator - - " Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>) - highlight def link jsxCloseString Comment - highlight def link jsxPunct jsxCloseString - highlight def link jsxOpenPunct jsxPunct - highlight def link jsxClosePunct jsxPunct - highlight def link jsxCloseTag jsxCloseString - - highlight def link jsxComment Comment - highlight def link jsxSpreadOperator Operator - - if s:highlight_close_tag - highlight! def link jsxOpenPunct jsxTag - highlight! def link jsxCloseString Identifier - endif - - let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0) - - if s:vim_jsx_pretty_colorful_config == 1 - highlight def link jsObjectKey Label - highlight def link jsArrowFuncArgs Type - highlight def link jsFuncArgs Type - endif - -endfunction diff --git a/autoload/rust.vim b/autoload/rust.vim index c513f03f..7aff515b 100644 --- a/autoload/rust.vim +++ b/autoload/rust.vim @@ -509,7 +509,7 @@ function! rust#Test(all, options) abort return rust#Run(1, '--test ' . a:options) endif - if exists(':terminal') + if has('terminal') || has('nvim') let cmd = 'terminal ' else let cmd = '!' @@ -530,7 +530,7 @@ function! rust#Test(all, options) abort let func_name = s:SearchTestFunctionNameUnderCursor() if func_name ==# '' echohl ErrorMsg - echo 'No test function was found under the cursor. Please add ! to command if you want to run all tests' + echomsg 'No test function was found under the cursor. Please add ! to command if you want to run all tests' echohl None return endif diff --git a/autoload/rust/debugging.vim b/autoload/rust/debugging.vim index caeef712..6392a024 100644 --- a/autoload/rust/debugging.vim +++ b/autoload/rust/debugging.vim @@ -5,6 +5,7 @@ endif " For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim let s:global_variable_list = [ + \ '_rustfmt_autosave_because_of_config', \ 'ftplugin_rust_source_path', \ 'loaded_syntastic_rust_cargo_checker', \ 'loaded_syntastic_rust_filetype', @@ -32,7 +33,6 @@ let s:global_variable_list = [ \ 'rustc_makeprg_no_percent', \ 'rustc_path', \ 'rustfmt_autosave', - \ 'rustfmt_autosave_because_of_config', \ 'rustfmt_autosave_if_config_present', \ 'rustfmt_command', \ 'rustfmt_emit_files', @@ -48,7 +48,9 @@ endfunction function! s:EchoGlobalVariables() abort for l:key in s:global_variable_list - call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null))) + if l:key !~# '^_' + call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null))) + endif if has_key(b:, l:key) call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key])) diff --git a/autoload/rust/tags.vim b/autoload/rust/tags.vim new file mode 100644 index 00000000..74e2f9f0 --- /dev/null +++ b/autoload/rust/tags.vim @@ -0,0 +1,21 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1 + finish +endif + +" Tagbar support code, for the sake of not automatically overriding its +" configuration in case Universal Ctags is detected. + +let s:ctags_is_uctags = 0 +let s:checked_ctags = 0 + +function! rust#tags#IsUCtags() abort + if s:checked_ctags == 0 + if system('ctags --version') =~? 'universal ctags' + let s:ctags_is_uctags = 1 + endif + let s:checked_ctags = 1 + endif + return s:ctags_is_uctags +endfunction + +" vim: set et sw=4 sts=4 ts=8: diff --git a/autoload/rustfmt.vim b/autoload/rustfmt.vim index 908eb325..f469ac13 100644 --- a/autoload/rustfmt.vim +++ b/autoload/rustfmt.vim @@ -246,7 +246,12 @@ function! rustfmt#PreWrite() if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0) if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# '' let b:rustfmt_autosave = 1 - let b:rustfmt_autosave_because_of_config = 1 + let b:_rustfmt_autosave_because_of_config = 1 + endif + else + if has_key(b:, '_rustfmt_autosave_because_of_config') + unlet b:_rustfmt_autosave_because_of_config + unlet b:rustfmt_autosave endif endif diff --git a/autoload/terraform.vim b/autoload/terraform.vim index db1e3934..8554022e 100644 --- a/autoload/terraform.vim +++ b/autoload/terraform.vim @@ -2,56 +2,23 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'terraform') != - finish endif -" Adapted from vim-hclfmt: -" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim function! terraform#fmt() if !filereadable(expand('%:p')) return endif let l:curw = winsaveview() - let l:tmpfile = tempname() . '.tf' - call writefile(getline(1, '$'), l:tmpfile) - let output = system('terraform fmt -write ' . l:tmpfile) - if v:shell_error == 0 - try | silent undojoin | catch | endtry - call rename(l:tmpfile, resolve(expand('%'))) - silent edit! - let &syntax = &syntax - else - echo output - call delete(l:tmpfile) + " Make a fake change so that the undo point is right. + normal! ix + normal! "_x + silent execute '%!terraform fmt -no-color -' + if v:shell_error != 0 + let output = getline(1, '$') + silent undo + echo join(output, "\n") endif call winrestview(l:curw) endfunction -function! terraform#folds() - let thisline = getline(v:lnum) - if match(thisline, '^resource') >= 0 - return '>1' - elseif match(thisline, '^provider') >= 0 - return '>1' - elseif match(thisline, '^module') >= 0 - return '>1' - elseif match(thisline, '^variable') >= 0 - return '>1' - elseif match(thisline, '^output') >= 0 - return '>1' - elseif match(thisline, '^data') >= 0 - return '>1' - elseif match(thisline, '^terraform') >= 0 - return '>1' - elseif match(thisline, '^locals') >= 0 - return '>1' - else - return '=' - endif -endfunction - -function! terraform#foldText() - let foldsize = (v:foldend-v:foldstart) - return getline(v:foldstart).' ('.foldsize.' lines)' -endfunction - function! terraform#align() let p = '^.*=[^>]*$' if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) @@ -77,7 +44,6 @@ function! terraform#commands(A, L, P) \ 'output', \ 'plan', \ 'providers', - \ 'push', \ 'refresh', \ 'show', \ 'taint', @@ -85,9 +51,10 @@ function! terraform#commands(A, L, P) \ 'validate', \ 'version', \ 'workspace', - \ '0.12checklist', + \ '0.12upgrade', \ 'debug', \ 'force-unlock', + \ 'push', \ 'state' \ ] endfunction |