diff options
Diffstat (limited to 'autoload')
| -rw-r--r-- | autoload/LaTeXtoUnicode.vim | 96 | ||||
| -rw-r--r-- | autoload/cargo.vim | 12 | ||||
| -rw-r--r-- | autoload/crystal_lang.vim | 36 | ||||
| -rw-r--r-- | autoload/csv.vim | 6 | ||||
| -rw-r--r-- | autoload/go/config.vim | 53 | ||||
| -rw-r--r-- | autoload/julia.vim | 23 | ||||
| -rw-r--r-- | autoload/julia_latex_symbols.vim | 4 | ||||
| -rw-r--r-- | autoload/terraform.vim | 3 | 
8 files changed, 125 insertions, 108 deletions
| diff --git a/autoload/LaTeXtoUnicode.vim b/autoload/LaTeXtoUnicode.vim index 045ebb9c..8e6714dc 100644 --- a/autoload/LaTeXtoUnicode.vim +++ b/autoload/LaTeXtoUnicode.vim @@ -13,6 +13,9 @@ function! s:L2U_Setup()    if !has_key(b:, "l2u_enabled")      let b:l2u_enabled = 0    endif +  if !has_key(b:, "l2u_autodetect_enable") +    let b:l2u_autodetect_enable = 1 +  endif    " Did we install the L2U tab mappings?    if !has_key(b:, "l2u_tab_set") @@ -92,34 +95,39 @@ endfunction  " Each time the filetype changes, we may need to enable or  " disable the LaTeX-to-Unicode functionality  function! LaTeXtoUnicode#Refresh() -    call s:L2U_Setup() +  " skip if manually overridden +  if !b:l2u_autodetect_enable +    return '' +  endif +    " by default, LaTeX-to-Unicode is only active on julia files    let file_types = s:L2U_file_type_regex(get(g:, "latex_to_unicode_file_types", "julia"))    let file_types_blacklist = s:L2U_file_type_regex(get(g:, "latex_to_unicode_file_types_blacklist", "$^"))    if match(&filetype, file_types) < 0 || match(&filetype, file_types_blacklist) >= 0      if b:l2u_enabled -      call LaTeXtoUnicode#Disable() +      call LaTeXtoUnicode#Disable(1)      else -      return +      return ''      endif    elseif !b:l2u_enabled -    call LaTeXtoUnicode#Enable() +    call LaTeXtoUnicode#Enable(1)    endif -  endfunction -function! LaTeXtoUnicode#Enable() +function! LaTeXtoUnicode#Enable(...) +  let auto_set = a:0 > 0 ? a:1 : 0    if b:l2u_enabled -    return +    return ''    end    call s:L2U_ResetLastCompletionInfo()    let b:l2u_enabled = 1 +  let b:l2u_autodetect_enable = auto_set    " If we're editing the first file upon opening vim, this will only init the    " command line mode mapping, and the full initialization will be performed by @@ -127,18 +135,18 @@ function! LaTeXtoUnicode#Enable()    " Otherwise, if we're opening a file from within a running vim session, this    " will actually initialize all the LaTeX-to-Unicode substitutions.    call LaTeXtoUnicode#Init() - -  return - +  return ''  endfunction -function! LaTeXtoUnicode#Disable() +function! LaTeXtoUnicode#Disable(...) +  let auto_set = a:0 > 0 ? a:1 : 0    if !b:l2u_enabled -    return +    return ''    endif    let b:l2u_enabled = 0 +  let b:l2u_autodetect_enable = auto_set    call LaTeXtoUnicode#Init() -  return +  return ''  endfunction  " Translate old options to their new equivalents @@ -246,7 +254,6 @@ function! LaTeXtoUnicode#omnifunc(findstart, base)      endif      let b:l2u_in_fallback = 0      " set info for the callback -    let b:l2u_tab_completing = 1      let b:l2u_found_completion = 1      " analyse current line      let col1 = col('.') @@ -375,6 +382,7 @@ function! LaTeXtoUnicode#Tab()    endif    " reset the in_fallback info    let b:l2u_in_fallback = 0 +  let b:l2u_tab_completing = 1    " temporary change to completeopt to use the `longest` setting, which is    " probably the only one which makes sense given that the goal of the    " completion is to substitute the final string @@ -383,7 +391,8 @@ function! LaTeXtoUnicode#Tab()    set completeopt-=noinsert    " invoke omnicompletion; failure to perform LaTeX-to-Unicode completion is    " handled by the CompleteDone autocommand. -  return "\<C-X>\<C-O>" +  call feedkeys("\<C-X>\<C-O>", 'n') +  return ""  endfunction  " This function is called at every CompleteDone event, and is meant to handle @@ -409,7 +418,7 @@ function! LaTeXtoUnicode#FallbackCallback()  endfunction  " This is the function that performs the substitution in command-line mode -function! LaTeXtoUnicode#CmdTab(triggeredbytab) +function! LaTeXtoUnicode#CmdTab(trigger)    " first stage    " analyse command line    let col1 = getcmdpos() - 1 @@ -418,10 +427,12 @@ function! LaTeXtoUnicode#CmdTab(triggeredbytab)    let b:l2u_singlebslash = (match(l[0:col1-1], '\\$') >= 0)    " completion not found    if col0 == -1 -    if a:triggeredbytab -      call feedkeys("\<Tab>", 'nt') " fall-back to the default <Tab> +    if a:trigger == &wildchar +      call feedkeys(nr2char(a:trigger), 'nt') " fall-back to the default wildchar +    elseif a:trigger == char2nr("\<S-Tab>") +      call feedkeys("\<S-Tab>", 'nt') " fall-back to the default <S-Tab>      endif -    return l +    return ''    endif    let base = l[col0 : col1-1]    " search for matches @@ -430,39 +441,28 @@ function! LaTeXtoUnicode#CmdTab(triggeredbytab)    for k in keys(g:l2u_symbols_dict)      if k ==# base        let exact_match = 1 -    endif -    if len(k) >= len(base) && k[0 : len(base)-1] ==# base +      break +    elseif len(k) >= len(base) && k[0 : len(base)-1] ==# base        call add(partmatches, k)      endif    endfor -  if len(partmatches) == 0 -    if a:triggeredbytab -      call feedkeys("\<Tab>", 'nt') " fall-back to the default <Tab> +  if !exact_match && len(partmatches) == 0 +    " no matches, call fallbacks +    if a:trigger == &wildchar +      call feedkeys(nr2char(a:trigger), 'nt') " fall-back to the default wildchar +    elseif a:trigger == char2nr("\<S-Tab>") +      call feedkeys("\<S-Tab>", 'nt') " fall-back to the default <S-Tab>      endif -    return l -  endif -  " exact matches are replaced with Unicode -  if exact_match +  elseif exact_match +    " exact matches are replaced with Unicode      let unicode = g:l2u_symbols_dict[base] -    if col0 > 0 -      let pre = l[0 : col0 - 1] -    else -      let pre = '' -    endif -    let posdiff = col1-col0 - len(unicode) -    call setcmdpos(col1 - posdiff + 1) -    return pre . unicode . l[col1 : -1] -  endif -  " no exact match: complete with the longest common prefix -  let common = s:L2U_longest_common_prefix(partmatches) -  if col0 > 0 -    let pre = l[0 : col0 - 1] +    call feedkeys(repeat("\b", len(base)) . unicode, 'nt')    else -    let pre = '' +    " no exact match: complete with the longest common prefix +    let common = s:L2U_longest_common_prefix(partmatches) +    call feedkeys(common[len(base):], 'nt')    endif -  let posdiff = col1-col0 - len(common) -  call setcmdpos(col1 - posdiff + 1) -  return pre . common . l[col1 : -1] +  return ''  endfunction  " Setup the L2U tab mapping @@ -473,7 +473,8 @@ function! s:L2U_SetTab(wait_insert_enter)        let b:l2u_cmdtab_keys = [b:l2u_cmdtab_keys]      endif      for k in b:l2u_cmdtab_keys -      exec 'cnoremap <buffer> '.k.' <C-\>eLaTeXtoUnicode#CmdTab('.(k ==? '<Tab>').')<CR>' +      exec 'let trigger = char2nr("'.(k[0] == '<' ? '\' : '').k.'")' +      exec 'cnoremap <buffer><expr> '.k.' LaTeXtoUnicode#CmdTab('.trigger.')'      endfor      let b:l2u_cmdtab_set = 1    endif @@ -637,6 +638,7 @@ function! LaTeXtoUnicode#Init(...)    call s:L2U_SetTab(wait_insert_enter)    call s:L2U_SetAutoSub(wait_insert_enter)    call s:L2U_SetKeymap() +  return ''  endfunction  function! LaTeXtoUnicode#Toggle() @@ -648,7 +650,7 @@ function! LaTeXtoUnicode#Toggle()      call LaTeXtoUnicode#Enable()      echo "LaTeX-to-Unicode enabled"    endif -  return +  return ''  endfunction  endif diff --git a/autoload/cargo.vim b/autoload/cargo.vim index ffa946da..fefd28de 100644 --- a/autoload/cargo.vim +++ b/autoload/cargo.vim @@ -1,14 +1,16 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1 -function! cargo#Load()  +function! cargo#Load()      " Utility call to get this script loaded, for debugging  endfunction -function! cargo#cmd(args) +function! cargo#cmd(args) abort      " 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') +    if exists('g:cargo_shell_command_runner') +        let cmd = g:cargo_shell_command_runner +    elseif has('terminal')          let cmd = 'terminal'      elseif has('nvim')          let cmd = 'noautocmd new | terminal' @@ -67,6 +69,10 @@ function! cargo#build(args)      call cargo#cmd("build " . a:args)  endfunction +function! cargo#check(args) +    call cargo#cmd("check " . a:args) +endfunction +  function! cargo#clean(args)      call cargo#cmd("clean " . a:args)  endfunction diff --git a/autoload/crystal_lang.vim b/autoload/crystal_lang.vim index 99d0ca2c..98359a4b 100644 --- a/autoload/crystal_lang.vim +++ b/autoload/crystal_lang.vim @@ -7,6 +7,8 @@ let s:V = vital#crystal#new()  let s:P = s:V.import('Process')  let s:C = s:V.import('ColorEcho') +let s:IS_WINDOWS = has('win32') +  if exists('*json_decode')      function! s:decode_json(text) abort          return json_decode(a:text) @@ -299,29 +301,47 @@ function! crystal_lang#run_current_spec(...) abort  endfunction  function! crystal_lang#format_string(code, ...) abort +    if s:IS_WINDOWS +        let redirect = '2> nul' +    else +        let redirect = '2>/dev/null' +    endif      let cmd = printf( -            \   '%s tool format --no-color %s -', +            \   '%s tool format --no-color %s - %s',              \   g:crystal_compiler_command, -            \   get(a:, 1, '') +            \   get(a:, 1, ''), +            \   redirect,              \ )      let output = s:P.system(cmd, a:code)      if s:P.get_last_status() -        throw 'vim-crystal: Error on formatting: ' . output +        throw 'vim-crystal: Error on formatting with command: ' . cmd      endif      return output  endfunction  " crystal_lang#format(option_str [, on_save])  function! crystal_lang#format(option_str, ...) abort +    let on_save = a:0 > 0 ? a:1 : 0 +      if !executable(g:crystal_compiler_command) -        " Finish command silently -        return +        if on_save +            " Finish command silently on save +            return +        else +            throw 'vim-crystal: Command for formatting is not executable: ' . g:crystal_compiler_command +        endif      endif -    let on_save = a:0 > 0 ? a:1 : 0 -      let before = join(getline(1, '$'), "\n") -    let formatted = crystal_lang#format_string(before, a:option_str) +    try +        let formatted = crystal_lang#format_string(before, a:option_str) +    catch /^vim-crystal: / +        echohl ErrorMsg +        echomsg v:exception . ': Your code was not formatted. Exception was thrown at ' . v:throwpoint +        echohl None +        return +    endtry +      if !on_save          let after = substitute(formatted, '\n$', '', '')          if before ==# after diff --git a/autoload/csv.vim b/autoload/csv.vim index 1fbf7c2a..5d63a24d 100644 --- a/autoload/csv.vim +++ b/autoload/csv.vim @@ -635,8 +635,12 @@ fu! csv#ArrangeCol(first, last, bang, limit, ...) range "{{{3          return      endif      let cur=winsaveview() +    " be sure, that b:col_width is actually valid +    if exists("b:col_width") && eval(join(b:col_width, '+')) == 0 +        unlet! b:col_width +    endif      " Force recalculation of Column width -    let row = exists("a:1") ? a:1 : line('$') +    let row = exists("a:1") && !empty(a:1) ? a:1 : line('$')      if a:bang || !empty(row)          if a:bang && exists("b:col_width")            " Unarrange, so that if csv_arrange_align has changed diff --git a/autoload/go/config.vim b/autoload/go/config.vim index d4ba03e4..9599ebb0 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -60,7 +60,10 @@ function! go#config#SetTermCloseOnExit(value) abort  endfunction  function! go#config#TermEnabled() abort -  return has('nvim') && get(g:, 'go_term_enabled', 0) +  " nvim always support +  " vim will support if terminal feature exists +  let l:support = has('nvim') || has('terminal') +  return support && get(g:, 'go_term_enabled', 0)  endfunction  function! go#config#SetTermEnabled(value) abort @@ -162,23 +165,6 @@ function! go#config#SetGuruScope(scope) abort    endif  endfunction -function! go#config#GocodeUnimportedPackages() abort -  return get(g:, 'go_gocode_unimported_packages', 0) -endfunction - -let s:sock_type = (has('win32') || has('win64')) ? 'tcp' : 'unix' -function! go#config#GocodeSocketType() abort -  return get(g:, 'go_gocode_socket_type', s:sock_type) -endfunction - -function! go#config#GocodeProposeBuiltins() abort -  return get(g:, 'go_gocode_propose_builtins', 1) -endfunction - -function! go#config#GocodeProposeSource() abort -  return get(g:, 'go_gocode_propose_source', 0) -endfunction -  function! go#config#EchoCommandInfo() abort    return get(g:, 'go_echo_command_info', 1)  endfunction @@ -263,6 +249,10 @@ function! go#config#AddtagsTransform() abort    return get(g:, 'go_addtags_transform', "snakecase")  endfunction +function! go#config#AddtagsSkipUnexported() abort +  return get(g:, 'go_addtags_skip_unexported', 0) +endfunction +  function! go#config#TemplateAutocreate() abort    return get(g:, "go_template_autocreate", 1)  endfunction @@ -491,6 +481,10 @@ function! go#config#HighlightDebug() abort    return get(g:, 'go_highlight_debug', 1)  endfunction +function! go#config#DebugBreakpointSignText() abort +  return get(g:, 'go_debug_breakpoint_sign_text', '>') +endfunction +  function! go#config#FoldEnable(...) abort    if a:0 > 0      return index(go#config#FoldEnable(), a:1) > -1 @@ -516,23 +510,30 @@ function! go#config#ReferrersMode() abort  endfunction  function! go#config#GoplsCompleteUnimported() abort -  return get(g:, 'go_gopls_complete_unimported', 0) +  return get(g:, 'go_gopls_complete_unimported', v:null)  endfunction  function! go#config#GoplsDeepCompletion() abort -  return get(g:, 'go_gopls_deep_completion', 1) +  return get(g:, 'go_gopls_deep_completion', v:null)  endfunction -function! go#config#GoplsFuzzyMatching() abort -  return get(g:, 'go_gopls_fuzzy_matching', 1) +function! go#config#GoplsMatcher() abort +  if !exists('g:go_gopls_matcher') && get(g:, 'g:go_gopls_fuzzy_matching', v:null) is 1 +    return 'fuzzy' +  endif +  return get(g:, 'go_gopls_matcher', v:null)  endfunction  function! go#config#GoplsStaticCheck() abort -  return get(g:, 'go_gopls_staticcheck', 0) +  return get(g:, 'go_gopls_staticcheck', v:null)  endfunction  function! go#config#GoplsUsePlaceholders() abort -  return get(g:, 'go_gopls_use_placeholders', 0) +  return get(g:, 'go_gopls_use_placeholders', v:null) +endfunction + +function! go#config#GoplsTempModfile() abort +  return get(g:, 'go_gopls_temp_modfile', v:null)  endfunction  function! go#config#GoplsEnabled() abort @@ -543,6 +544,10 @@ function! go#config#DiagnosticsEnabled() abort    return get(g:, 'go_diagnostics_enabled', 0)  endfunction +function! go#config#GoplsOptions() abort +  return get(g:, 'go_gopls_options', []) +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/julia.vim b/autoload/julia.vim index 6bb70dce..9442f611 100644 --- a/autoload/julia.vim +++ b/autoload/julia.vim @@ -1,30 +1,11 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1  function! julia#set_syntax_version(jvers) -  if &filetype != "julia" -    echo "Not a Julia file" -    return -  endif -  syntax clear -  let b:julia_syntax_version = a:jvers -  set filetype=julia +  echo "The julia#set_syntax_version function is deprecated"  endfunction  function! julia#toggle_deprecated_syntax() -  if &filetype != "julia" -    echo "Not a Julia file" -    return -  endif -  syntax clear -  let hd = get(b:, "julia_syntax_highlight_deprecated", -      \    get(g:, "julia_syntax_highlight_deprecated", 0)) -  let b:julia_syntax_highlight_deprecated = hd ? 0 : 1 -  set filetype=julia -  if b:julia_syntax_highlight_deprecated -    echo "Highlighting of deprecated syntax enabled" -  else -    echo "Highlighting of deprecated syntax disabled" -  endif +  echo "The julia#toggle_deprecated_syntax function is deprecated"  endfunction  if exists("loaded_matchit") diff --git a/autoload/julia_latex_symbols.vim b/autoload/julia_latex_symbols.vim index 70d5d3de..3b2bf050 100644 --- a/autoload/julia_latex_symbols.vim +++ b/autoload/julia_latex_symbols.vim @@ -1,7 +1,7 @@  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1  " This file is autogenerated from the script 'generate_latex_symbols_table.jl' -" The symbols are based on Julia version 1.3.0-DEV.263 +" The symbols are based on Julia version 1.5.0-DEV.67  scriptencoding utf-8 @@ -658,7 +658,9 @@ function! julia_latex_symbols#get_dict()      \ '\nequiv': '≢',      \ '\Equiv': '≣',      \ '\le': '≤', +    \ '\leq': '≤',      \ '\ge': '≥', +    \ '\geq': '≥',      \ '\leqq': '≦',      \ '\geqq': '≧',      \ '\lneqq': '≨', diff --git a/autoload/terraform.vim b/autoload/terraform.vim index dc96ce0a..fcc7ba6e 100644 --- a/autoload/terraform.vim +++ b/autoload/terraform.vim @@ -7,9 +7,6 @@ set cpoptions&vim  let $TF_CLI_ARGS_fmt=''  function! terraform#fmt() -  if !filereadable(expand('%:p')) -    return -  endif    let l:curw = winsaveview()    " Make a fake change so that the undo point is right.    normal! ix | 
