summaryrefslogtreecommitdiffstats
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/LaTeXtoUnicode.vim96
-rw-r--r--autoload/cargo.vim12
-rw-r--r--autoload/crystal_lang.vim36
-rw-r--r--autoload/csv.vim6
-rw-r--r--autoload/go/config.vim53
-rw-r--r--autoload/julia.vim23
-rw-r--r--autoload/julia_latex_symbols.vim4
-rw-r--r--autoload/terraform.vim3
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