vim-go v1.10 Release Notes
Release Date: 2016-11-24 // over 7 years ago-
๐ FEATURES:
๐ Vim 8.0 support! This is the initial version to add Vim 8.0 based support to all basic commands (check out below for more information). With time we'll going to extend it to other commands. All the features are only enabled if you have at least Vim 8.0.0087. Backwards compatible with Vim 7.4.x. If you see any problems, please open an issue.
๐ฑ We have now a logo for vim-go! Thanks to @egonelbre for his work on this.
โ
:GoBuild
,:GoTest
,:GoTestCompile
,:GoInstall
commands are now fully async. Async means it doesn't block your UI anymore. If the command finished it echoes the status. For a better experience use the statusline information (more info below)๐ป
:GoCoverage
and:GoCoverageBrowser
commands are fully async.:GoDef
is fully async ifguru
is used as command.:GoRename
is fully async .๐
:GoMetaLinter
is fully asnyc. Also works with the current autosave linting feature. As a reminder, to enable auto linting on save either call:GoMetaLinterAutoSaveToggle
(temporary) or addlet g:go_metalinter_autosave = 1
(persistent) to your virmc).All
guru
commands run asynchronously if Vim 8.0 is being used. Current Commands:- GoImplements
- GoWhicherrs
- GoCallees
- GoDescribe
- GoCallers
- GoCallstack
- GoFreevars
- GoChannelPeers
- GoReferrers
:GoSameIds
also runs asynchronously. This makes it useful especially for auto sameids mode. In this mode it constantly evaluates the identifier under the cursor whenever it's in hold position and then calls :GoSameIds. As a reminder, to enable auto info either call:GoSameIdsAutoToggle
(temporary) or addlet g:go_auto_sameids = 1
(persistent) to your vimrc.:GoInfo
is now non blocking and works in async mode ifguru
is used ing:go_info_mode
. This makes it useful especially for autoinfo mode. In this mode it constantly evaluates the identifier under the cursor whenever it's in hold position and then calls :GoInfo. As a reminder, to enable auto info either call:GoAutoTypeInfoToggle
(temporary) or addlet g:go_auto_type_info = 1
(persistent) to your vimrc. To useguru
instead ofgocode
add following to your vimrc:let g:go_info_mode = 'guru'
The
guru
is more accurate and reliabed due the usage ofguru
describe. It doesn't rely onpkg/
folder likegocode
does. However it's slower thangocode
as there is no caching mechanism inguru
yet.- ๐ New: Statusline function:
go#statusline#Show()
which can be plugged into the statusline bar. Works only with vim 8.0. It shows all asynchronously called functions status real time. Checkout it in action: https://twitter.com/fatih/status/800473735467847680. To enable it add the following to yourvimrc
. If you use lightline, airline, .. check out their respective documentation on how to add a custom function:
" go command status (requires vim-go) set statusline+=%#goStatuslineColor# set statusline+=%{go#statusline#Show()} set statusline+=%*
๐ IMPROVEMENTS:
- ๐ป :GoDocBrowser is now capable to to understand the identifier under the cursor (just like :GoDoc)
- Function calls are now highlighted as well when
g:go_highlight_functions
is enabled [GH-1048] - โ Add completion support for un-imported packages. This allows to complete even
if the package is not imported. By default it's disabled, enable by adding
let g:go_gocode_unimported_packages = 1
[GH-1084] - โก๏ธ Tools that embeds GOROOT into their binaries do not work when people update
their Go version and the GOROOT contains the vesion as part of their path
(i.e:
/usr/local/Cellar/go/1.7.2/libexec
, more info) . This is now fixed by introducing automatic GOROOT set/unset before each tool invoke. [GH-954] - Added new setting
g:go_echo_go_info
to enable/disable printing identifier information when completion is done [GH-1101] - Added new
go_echo_command_info
setting is added, which is enabled by default. It's just a switch for disabling messages of commands, such as:GoBuild
,:GoTest
, etc.. Useful to disable ifgo#statusline#Show()
is being used in Statusline, to prevent to see duplicates notifications. - goSameId highlighting is now linked to
Search
, which is much more clear as it changes according to the users colorscheme - โ Add plug mapping
(go-lint)
for :GoLint [GH-1089]
๐ BUG FIXES:
- ๐ Change back nil and iota highlighting color to the old type [GH-1049]
- ๐ Fix passing arguments to
:GoBuild
while using NeoVim [GH-1062] - Do not open a split if
:GoDef
is used on a modified file [GH-1083] - Highlight nested structs correctly [GH-1075]
- Highlight builtin functions correctly if
g:go_highlight_functions
is enabled [GH-1070] - ๐ Fix
:GoSameIds
highlighting if a new buffer is opened in the same window [GH-1067] - Internal: add
abort
to all vim function to return in case of errors [GH-1100] - ๐ Fix
:GoCoverage
to be executed if working dir is not inside the test dir [GH-1033]
BACKWARDS INCOMPATIBILITIES:
โ remove vim-dispatch and vimproc.vim support. vim 8.0 has now the necessary API to invoke async jobs and timers. Going forward we should use those. Also this will remove the burden to maintain compatibility with those plugins.
๐
go#jobcontrol#Statusline()
is removed in favor of the new, global and extensiblego#statusline#Show()