summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload/go/config.vim4
-rw-r--r--autoload/rustfmt.vim4
-rw-r--r--autoload/terraform.vim1
-rw-r--r--doc/vim-go.txt99
-rw-r--r--ftplugin/zig.vim21
-rw-r--r--syntax/odin.vim8
6 files changed, 91 insertions, 46 deletions
diff --git a/autoload/go/config.vim b/autoload/go/config.vim
index 55bc1902..355f90fb 100644
--- a/autoload/go/config.vim
+++ b/autoload/go/config.vim
@@ -572,6 +572,10 @@ function! go#config#GoplsOptions() abort
return get(g:, 'go_gopls_options', ['-remote=auto'])
endfunction
+function! go#config#FillStructMode() abort
+ return get(g:, 'go_fillstruct_mode', 'fillstruct')
+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/rustfmt.vim b/autoload/rustfmt.vim
index 60e2029e..28cca07a 100644
--- a/autoload/rustfmt.vim
+++ b/autoload/rustfmt.vim
@@ -109,7 +109,7 @@ function! s:DeleteLines(start, end) abort
endfunction
function! s:RunRustfmt(command, tmpname, from_writepre)
- mkview!
+ let l:view = winsaveview()
let l:stderr_tmpname = tempname()
call writefile([], l:stderr_tmpname)
@@ -215,7 +215,7 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
lwindow
endif
- silent! loadview
+ call winrestview(l:view)
endfunction
function! rustfmt#FormatRange(line1, line2)
diff --git a/autoload/terraform.vim b/autoload/terraform.vim
index 05a88e30..1f987669 100644
--- a/autoload/terraform.vim
+++ b/autoload/terraform.vim
@@ -68,6 +68,7 @@ function! terraform#commands(ArgLead, CmdLine, CursorPos) abort
\ 'version',
\ 'workspace',
\ '0.12upgrade',
+ \ '0.13upgrade',
\ 'debug',
\ 'force-unlock',
\ 'push',
diff --git a/doc/vim-go.txt b/doc/vim-go.txt
index b92ab5b9..7d4ac52d 100644
--- a/doc/vim-go.txt
+++ b/doc/vim-go.txt
@@ -426,10 +426,6 @@ CTRL-t
If [!] is not given the first error is jumped to.
- If using neovim `:GoTestFunc` will run in a new terminal or run
- asynchronously in the background according to |'g:go_term_enabled'|. You
- can set the mode of the new terminal with |'g:go_term_mode'|.
-
*:GoTestCompile*
:GoTestCompile[!] [expand]
@@ -441,10 +437,6 @@ CTRL-t
If [!] is not given the first error is jumped to.
- If using neovim `:GoTestCompile` will run in a new terminal or run
- asynchronously in the background according to |'g:go_term_enabled'|. You
- can set the mode of the new terminal with |'g:go_term_mode'|.
-
*:GoCoverage*
:GoCoverage[!] [options]
@@ -1484,6 +1476,14 @@ and `guru`.
>
let g:go_def_mode = 'gopls'
<
+ *'g:go_fillstruct_mode'*
+
+Use this option to define the command to be used for |:GoFillStruct|. By
+default `fillstruct` is used. Valid values are `fillstruct` and `gopls`. By
+default it is `fillstruct`.
+>
+ let g:go_fillstruct_mode = 'fillstruct'
+<
*'g:go_referrers_mode'*
Use this option to define the command to be used for |:GoReferrers|. By
@@ -1789,25 +1789,34 @@ same.
*'g:go_gopls_enabled'*
-Specifies whether `gopls` can be used by vim-go. By default gopls is enabled.
-When gopls is disabled completion will not work and other configuration
+Specifies whether `gopls` can be used by vim-go.
+
+Completion will not work when gopls is disabled and other configuration
options may also need to be adjusted.
+By default gopls is enabled.
+
>
let g:go_gopls_enabled = 1
<
*'g:go_gopls_options'*
-The commandline arguments to pass to gopls. By default, it's `-remote=auto`.
+The commandline arguments to pass to gopls.
+
+By default, it is `['-remote=auto']`.
>
- let g:go_gopls_options = []
+ let g:go_gopls_options = ['-remote=auto']
<
*'g:go_gopls_analyses'*
-The analyses settings for `gopls`. By default, it's `v:null`. Valid map values
-are `v:true` and `v:false`.
+The analyses settings for `gopls`.
+
+The Expected value is either `v:null` or a dictionary. The dictionary will be
+provided to `gopls` via json-rpc, so dictionary values need to be of the
+appropriate type for Vim to convert to JSON (e.g. truthy dictionary values
+should be `v:true` or `v:false`). By default, it is `v:null`.
>
let g:go_gopls_analyses = v:null
<
@@ -1815,34 +1824,36 @@ are `v:true` and `v:false`.
*'g:go_gopls_complete_unimported'*
Specifies whether `gopls` should include suggestions from unimported packages.
-When it is `v:null`, `gopls`' default will be used. By default it is
-`v:null`.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_complete_unimported = v:null
<
*'g:go_gopls_deep_completion'*
-Specifies whether `gopls` should use deep completion. When it is `v:null`,
-`gopls`' default will be used. By default it is `v:null`.
+Specifies whether `gopls` should use deep completion.
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_deep_completion = v:null
<
*'g:go_gopls_matcher'*
-Specifies how `gopls` should match for completions. Valid values are `v:null`,
-`fuzzy`, and `caseSensitive`. When it is `v:null`, `gopls`' default will be
-used. By default it is `v:null`.
+Specifies how `gopls` should match for completions.
+
+Valid values are `v:null`, `fuzzy`, and `caseSensitive`. When it is `v:null`,
+`gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_matcher = v:null
<
*'g:go_gopls_staticcheck'*
-Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
-`gopls`' default will be used. By default it is `v:null`.
+Specifies whether `gopls` should run staticcheck checks.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_staticcheck = v:null
<
@@ -1852,8 +1863,9 @@ Specifies whether `gopls` should run staticcheck checks. When it is `v:null`,
Specifies whether `gopls` can provide placeholders for function parameters and
struct fields. When set, completion items will be treated as anonymous
snippets if UltiSnips is installed and configured to be used as
-|'g:go_snippet_engine'|. When it is `v:null`, `gopls`' default will be used.
-By default it is `v:null`.
+|'g:go_snippet_engine'|.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_use_placeholders = v:null
<
@@ -1861,8 +1873,9 @@ By default it is `v:null`.
*'g:go_gopls_temp_modfile'*
Specifies whether `gopls` should use a temp modfile and suggest edits rather
-than modifying the ambient go.mod file. When it is `v:null`, `gopls`' default
-will be used. By default it is `v:null`.
+than modifying the ambient go.mod file.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_temp_modfile = v:null
<
@@ -1870,16 +1883,18 @@ will be used. By default it is `v:null`.
*'g:go_gopls_local'*
Specifies the prefix for imports that `gopls` should consider group
-separately. When it is `v:null`, `gopls`' default will be used. By default it
-is `v:null`.
+separately.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_local = v:null
<
*'g:go_gopls_gofumpt'*
-Specifies whether `gopls` should use `gofumpt` for formatting. When it is
-`v:null`, `gopls`' default will be used. By default it is `v:null`.
+Specifies whether `gopls` should use `gofumpt` for formatting.
+
+When it is `v:null`, `gopls`' default will be used. By default it is `v:null`.
>
let g:go_gopls_gofumpt = v:null
<
@@ -1887,10 +1902,12 @@ Specifies whether `gopls` should use `gofumpt` for formatting. When it is
*'g:go_gopls_settings'*
Specifies `gopls` workspace settings for `gopls` that are not yet officially
-supported by vim-go. Any value in the dictionary will be overridden by values
-provided in the specific options supported by vim-go (e.g.
-g:go_gopls_staticcheck) or settings statically configured by vim-go to ensure
-expected behavior. By default it is `v:null`.
+supported by vim-go.
+
+Any value in the dictionary will be overridden by values provided in the
+specific options supported by vim-go (e.g. g:go_gopls_staticcheck) or
+settings statically configured by vim-go to ensure expected behavior. By
+default it is `v:null`.
>
let g:go_gopls_settings = v:null
<
@@ -1898,7 +1915,9 @@ expected behavior. By default it is `v:null`.
Specifies whether `gopls` diagnostics are enabled. Only the diagnostics for
the current buffer will be processed when it is not set; all others will be
-ignored. By default it is disabled.
+ignored.
+
+By default it is disabled.
>
let g:go_diagnostics_enabled = 0
<
@@ -2323,6 +2342,14 @@ The rest of the commands and mappings become available after executing
Use `-test.flag` to pass flags to `go test` when debugging a test; for
example `-test.v` or `-test.run TestFoo`
+ *:GoDebugTestFunc*
+:GoDebugTestFunc [expand]
+
+ Behaves the same as |:GoDebugTest| and implicitly adds `-test.run` to run
+ the nearest test or example function (i.e the nearest function declaration
+ that matches `func Test` or `func Example`) at or previous to the cursor.
+ Search will not wrap around when at the top of the file.
+
*:GoDebugRestart*
:GoDebugRestart
diff --git a/ftplugin/zig.vim b/ftplugin/zig.vim
index 675a3bcf..dc9af384 100644
--- a/ftplugin/zig.vim
+++ b/ftplugin/zig.vim
@@ -21,24 +21,31 @@ setlocal formatoptions-=t formatoptions+=croql
setlocal suffixesadd=.zig,.zir
setlocal makeprg=zig\ build
-if has("comments")
+if has('comments')
setlocal comments=:///,://!,://,:\\\\
setlocal commentstring=//\ %s
endif
if has('find_in_path')
- let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
- let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
- let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
+ let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
+ let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
endif
-if has('eval')
- execute 'setlocal path+=' . json_decode(system('zig env'))['std_dir']
+let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
+
+if exists("*json_decode") && executable('zig')
+ silent let s:env = system('zig env')
+ if v:shell_error == 0
+ let &l:path=json_decode(s:env)['std_dir'] . ',' . &l:path
+ endif
+ unlet! s:env
endif
-let b:undo_ftplugin = "setl et< ts< sts< sw< fo< sua< mp< com< cms<"
+let b:undo_ftplugin =
+ \ 'setl et< ts< sts< sw< fo< sua< mp< com< cms< inex< inc< pa<'
let &cpo = s:cpo_orig
unlet s:cpo_orig
+" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
endif
diff --git a/syntax/odin.vim b/syntax/odin.vim
index c9bae639..553f4612 100644
--- a/syntax/odin.vim
+++ b/syntax/odin.vim
@@ -30,6 +30,9 @@ syntax keyword odinTypeIdOf typeid_of
syntax keyword odinTypeOf type_of
syntax keyword odinAlignOf align_of
+syntax keyword odinInline inline
+syntax keyword odinNoInline no_inline
+
syntax match odinTodo "TODO"
syntax match odinNote "NOTE"
syntax match odinXXX "XXX"
@@ -37,7 +40,7 @@ syntax match odinFixMe "FIXME"
syntax match odinNoCheckin "NOCHECKIN"
syntax match odinHack "HACK"
-syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int
+syntax keyword odinDataType string cstring bool b8 b16 b32 b64 rune any rawptr f32 f64 f32le f32be f64le f64be u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be u32be u64be u128be uint uintptr i8 i16 i32 i64 i128 i16le i32le i64le i128le i16be i32be i64be i128be int
syntax keyword odinBool true false
syntax keyword odinNull nil
syntax keyword odinDynamic dynamic
@@ -105,6 +108,9 @@ highlight link odinTypeIdOf Keyword
highlight link odinAlignOf Keyword
highlight link odinPackage Keyword
+highlight link odinInline Keyword
+highlight link odinNoInline Keyword
+
highlight link odinImport Keyword
highlight link odinExport Keyword
highlight link odinForeign Keyword