diff options
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 | 
