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 |