All Versions
38
Latest Version
Avg Release Cycle
77 days
Latest Release
67 days ago

Changelog History
Page 2

  • v1.20 Changes

    April 22, 2019

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ‘ gopls support!
      • use gopls for autocompletion by default in Vim8 and Neovim.
      • use gopls for :GoDef by setting g:go_def_mode='gopls'.
      • use gopls for :GoInfo by setting g:go_info_mode='gopls'.
    • โž• Add support for golangci-lint.
      • set g:go_metalinter_command='golangci-lint' to use golangci-lint instead of gometalinter.
    • ๐Ÿ†• New :GoDefType command to jump to a type definition from an instance of the type.

    BACKWARDS INCOMPATABILITIES:

    • g:go_highlight_function_arguments is renamed to g:go_highlight_function_parameters [GH-2117]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • Disable g:go_gocode_propose_source by default. [GH-2050]
    • Don't spam users when Vim is run with vi compatibility. [GH-2055]
    • โž• Add bang support to lint commands to allow them to be run without jumping to errors. [GH-2056]
    • ๐Ÿ‘‰ Use go doc for :GoDoc instead of godoc. [GH-2070]
    • Detach from and shutdown dlv correctly. [GH-2075]
    • Do not require 'autowrite' or 'autowriteall' to be set when using autocompletion in module mode. [GH-2091]
    • ๐Ÿ‘• Fix use of g:go_metalinter_command and apply it even when autosaving. [GH-2101]
    • Report errors in quickfix when Delve fails to start (e.g. compiler errors). [GH-2111]
    • ๐Ÿ‘Œ Support 'undo_ftplugin', make most autocmds buffer-local, and only do the bare minimum based on file names alone. [GH-2108]
    • Write a message when :GoInfo can't display any results when g:go_info_mode='gocode'. [GH-2122]
    • Highlight fields followed by an operator when g:go_highlight_fields is set. [GH-1907]
    • Skip autosave actions when the buffer is not a readable file. [GH-2143]
    • โš™ Run godef from the current buffer's directory to make sure it works with modules. [GH-2150]
    • โž• Add a function, go#tool#DescribeBalloon, to show information in a balloon with 'balloonexpr'. (Vim8 only). [GH-1975]
    • โž• Add initial support for gopls. [GH-2163].
    • โž• Add :GoDefType to jump to the type definition of the identifier under the cursor. [GH-2165]
    • ๐Ÿ”” Notify gopls about changes. [GH-2171]
    • Respect g:go_jump_to_error when running gometalinter automatically on save. [GH-2176]
    • 0๏ธโƒฃ Use gopls for code completion by default in Vim8 and Neovim. [GH-2172]
    • โž• Add support for golangci-lint. [GH-2182]
    • ๐Ÿ‘‰ Show hover balloon using gopls instead of gocode. [GH-2202]
    • Add a new option, g:go_debug_log_output, to control logging with the debugger. [GH-2203]
    • Do not jump to quickfix or location list window when bang is used for async jobs or linting. [GH-2205]
    • ๐Ÿ“ฆ Tab complete package names for commands from vendor directories and in modules. [GH-2213]
    • Add support for gopls to g:go_info_mode. [GH-2224]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix opening of non-existent file from :GoDeclsDir when the current directory is not the directory containing the current buffer. [GH-2048]
    • ๐Ÿ›  Fix jumping to an identifier with godef from a modified buffer. [GH-2054]
    • ๐Ÿ›  Fix errors when g:go_debug contains debugger-commands. [GH-2075]
    • ๐Ÿ›  Fix errors from :GoDebugStop in Neovim. [GH-2075]
    • ๐Ÿ›  Fix :GoSameIdsToggle. [GH-2086]
    • Do not set fileencoding or fileformat options or populate from template when the buffer is not modifiable. [GH-2097]
    • Do not clear buffer-local autocmds of other buffers. [GH-2109]
    • Highlight return parameter types when g:go_highlight_function_arguments is set. [GH-2116]
    • ๐Ÿ›  Fix lockup in Neovim when trying to run :GoDebugTest when there are no tests. [GH-2125]
    • Keep track of breakpoints correctly when buffer is edited after breakpoints are set. [GH-2126]
    • ๐Ÿ›  Fix race conditions in :GoDebugStop. [GH-2127]
    • ๐Ÿ›  Fix jumping to module or package using godef. [GH-2141]
    • ๐Ÿ›  Fix errors caused by redefining functions within functions. [GH-2189]
    • ๐Ÿš€ Highlight pre-release and metadata in versions in go.mod. [GH-2192]
    • ๐Ÿ– Handle runtime panics from :GoRun when using Neovim's terminal. [GH-2209]
    • ๐Ÿ›  Fix adding tag option when a tag is added. [GH-2227]
  • v1.19 Changes

    November 04, 2018

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ‘ go.mod file support! This is the first feature for upcoming Go modules support. The followings are added:
      • Syntax highlighting for the go.mod file.
      • A new gomod filetype is set if a go.mod file has been opened and starts with the line module
      • New :GoModFmt command that formats the go.mod file
      • Auto format on save feature for :GoModFmt, enabled automatically. Can be toggled of with the setting g:go_mod_fmt_autosave or with the command: GoModFmtAutoSaveToggle [GH-1931]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ‘ท Unify async job handling for Vim8 and Neovim. [GH-1864]
    • Document Vim and Neovim requirements in README.md and help file. [GH-1889]
    • Highlight context.Context when g:go_highlight_extra_types is set. [GH-1903]
    • ๐Ÿ‘• Run gometalinter asynchronously in Neovim. [GH-1901]
    • โš™ Run gorename asynchronously in Vim8 and Neovim. [GH-1894]
    • Install keyify from its canonical import path. [GH-1924]
    • โšก๏ธ Update the tested version of Neovim to v0.3.1. [GH-1923]
    • โš™ Run autocompletion asynchronously in Vim8 and Neovim. [GH-1926]
    • Show statusline update when running :GoInfo with g:go_info_mode='gocode'. [GH-1937]
    • โšก๏ธ Do not update statusline when highlighting sameids or showing type info via an autocmd. [GH-1937]
    • Do not indent within a raw string literal. [GH-1858]
    • Highlight Go's predeclared function identifiers (the functions in builtins) using keyword groups and highlight them using the Identifiers group. [GH-1939]
    • โž• Add a new FAQ entry to instruct users how to modify the vim-go highlight groups. [GH-1939]
    • ๐Ÿ‘Œ Improve use of statusline and progress messages. [GH-1948]
    • โž• Add tt snippet to create a table test boilerplate (see https://github.com/golang/go/wiki/TableDrivenTests for more information on how to use a table driven test). [GH-1956]
    • โž• Add <Plug>(go-decls) and <Plug>(go-decls-dir) mappings. [GH-1964]
    • โœ… Handle go1.11 test output. [GH-1978]
    • Internal: install tools by their custom names [GH-1984]
    • ๐Ÿ‘Œ Support the go-debugger features in Neovim. [GH-2007]
    • color the statusline for termguicolors and Neovim. [GH-2014]
    • โž• add an option to disable highlighting of breakpoints and the current line when debugging. [GH-2025]
    • โšก๏ธ Update autocompletion to work with Go modules. [GH-1988]
    • Add an option to search $GOPATH/bin or $GOBIN after $PATH. [GH-2041]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix :GoRun % on Windows. [GH-1900]
    • ๐Ÿ›  Fix go#complete#GetInfo() to return a description of the identifier. [GH-1905]
    • โช Restore support for running tests in the Neovim terminal. [GH-1895]
    • Fix :GoInfo when g:go_info_mode is gocode [GH-1915]
    • ๐Ÿ›  Fix highlighting of pointer type in var blocks. [GH-1794]
    • ๐Ÿ›  Fix :GoImport when adding to an empty import block (i.eimport ()) [GH-1938]
    • โš™ Run shell commands with shellcmdflag set to -c. [GH-2006]
    • ๐ŸŒฒ Use the correct log output option for delve. [GH-1992]
    • ๐Ÿ Pass empty arguments correctly in async jobs on Windows. [GH-2011]
    • Don't close godoc scratch window when using arrow keys. [GH-2021]

    BACKWARDS INCOMPATIBILITIES:

    • โฌ†๏ธ Bump minimum required version of Vim to 7.4.2009. [GH-1899]
    • Switch gocode to github.com/mdempsky/gocode. Several gocode options have been removed and a new one has been added. [GH-1853]
  • v1.18 Changes

    July 18, 2018

    ๐Ÿ”‹ FEATURES:

    • Add :GoIfErr command together with the <Plug>(go-iferr) plug key to create a custom mapping. This command generates an if err != nil { return ... } automatically which infer the type of return values and the numbers. For example:
      func doSomething() (string, error) {
          f, err := os.Open("file")
      }
    

    Becomes:

      func doSomething() (string, error) {
          f, err := os.Open("file")
          if err != nil {
              return "", err
          }
      }
    
    • Two new text objects has been added:
      • ic (inner comment) selects the content of the comment, excluding the start/end markers (i.e: //, /*)
      • ac (a comment) selects the content of the whole commment block, including markers To use this new feature, make sure you use use the latest version of motion. You can update the tool from Vim via :GoUpdateBinaries [GH-1779]
    • โž• Add :GoPointsTo to show all variables to which the pointer under the cursor may point to. [GH-1751]
    • โž• Add :GoReportGitHubIssue to initialize a new GitHub issue with as much data that our template requests as possible. [GH-1738]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ— Add build tags (with g:go_build_tags) to all commands that support it. [GH-1705]
    • Some command which operate on files (rather than Vim buffers) will now show a warning if there are unsaved buffers, similar to Vim's :make. [GH-1754]
    • Don't return an error from :GoGuru functions when the import path is unknown and scope is unneeded. [GH-1826]
    • ๐ŸŽ Performance improvements for the go.vim syntax file. [GH-1799]
    • ๐Ÿ‘ Allow GoDebugBreakpoint and GoDebugCurrent highlight groups to be overridden by user configuration. [GH-1850]
    • ๐Ÿ“œ Strip trailing carriage returns from quickfix errors that are parsed manually. [GH-1861].
    • Cleanup title of terminal window. [GH-1861].
    • โž• Add :GoImpl is able to complete interfaces by their full import path in addition to the current package name (i.e: :GoImpl t *T github.com/BurntSushi/toml.Unmarshaller is now possible) [GH-1884]

    ๐Ÿ› BUG FIXES:

    • โšก๏ธ Update the correct window's location list after a long running async job completes, even when the user changes their window layout while the job is running. [GH-1734]
    • Apply debugger mappings only for Go buffers, and not all buffers. [GH-1696]
    • The gohtmltmpl filetype will now highlight {{ .. }} syntax HTML attributes and some other locations. [GH-1790]
    • ๐ŸŒฒ Use the correct logging flag argument for delve. [GH-1809]
    • ๐Ÿ›  Fix gocode option string values that would cause gocode settings not to set correctly [GH-1818]
    • ๐Ÿ›  Fix Neovim handling of guru output. [GH-1846]
    • Execute commands correctly when they are in $GOBIN but not $PATH. [GH-1866]
    • Open files correctly with ctrlp. [GH-1878]
    • ๐Ÿ›  Fix checking guru binary path [GH-1886]
    • โž• Add build tags to :GoDef if only it's present [GH-1882]
  • v1.17 Changes

    March 27, 2018

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ‘ Debugger support! Add integrated support for the delve debugger. Use :GoInstallBinaries to install dlv, and see :help go-debug to get started. [GH-1390]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โž• Add descriptions to neosnippet abbrevations. [GH-1639]
    • ๐Ÿ‘‰ Show messages in the location list instead of the quickfix list when gometalinter is run automatically when saving a buffer. Whether the location list or quickfix list is used can be customized in the usual ways. [GH-1652]
    • Redraw the screen before executing blocking calls to gocode. [GH-1671]
    • โž• Add fe -> fmt.Errorf() snippet for NeoSnippet and UltiSnippets. [GH-1677]
    • ๐Ÿ‘‰ Use the async api when calling guru from neovim. [GH-1678]
    • ๐Ÿ‘‰ Use the async api when calling gocode to get type info. [GH-1697]
    • ๐Ÿ“ฑ Cache import path lookups to improve responsiveness. [GH-1713]

    ๐Ÿ› BUG FIXES:

    • โœ… Create quickfix list correctly when tests timeout. [GH-1633]
    • โœ… Apply g:go_test_timeout when running :GoTestFunc. [GH-1631]
    • The user's configured g:go_doc_url variable wasn't working correctly in the case when the "gogetdoc" command isn't installed. [GH-1629]
    • Highlight format specifiers with an index (e.g. %[2]d). [GH-1634]
    • โœ… Respect g:go_test_show_name change for :GoTest when it changes during a Vim session. [GH-1641]
    • โœ… Show g:go_test_show_name value for :GoTest failures if it's available. [GH-1641]
    • ๐Ÿ‘• Make sure linter errors for the file being saved are shown in vim74 and nvim. [GH-1640]
    • ๐Ÿ‘• Make sure only linter errors for the file being saved are shown in vim8. Previously, all linter errors for all files in the current file's directory were being shown. [GH-1640]
    • ๐Ÿ‘• Make sure gometalinter is run on the given directories when arguments are given to :GoMetaLinter. [GH-1640]
    • ๐Ÿ‘• Do not run disabled linters with gometalinter. [GH-1648]
    • ๐Ÿ‘• Do not prompt user to press enter after when gometalinter is called in autosave mode. [GH-1654]
    • ๐Ÿ›  Fix potential race conditions when using vim8 jobs. [GH-1656]
    • Treat 'autowriteall' the same as 'autowrite' when determining whether to write a buffer before calling some commands. [GH-1653]
    • โœ… Show the file location of test errors when the message is empty or begins with a newline. [GH-1664]
    • ๐Ÿ›  Fix minisnip on Windows. [GH-1698]
    • Keep alternate filename when loading an autocreate template. [GH-1675]
    • ๐Ÿ“œ Parse the column number in errors correctly in vim8 and neovim. [GH-1716]
    • ๐Ÿ›  Fix race conditions in the terminal handling for neovim. [GH-1721]
    • Put the user back in the original window regardless of the value of splitright after starting a neovim terminal window. [GH-1725]

    BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿ›  Highlighting function and method declarations/calls is fixed. To fix it we had to remove the meaning of the previous settings. The following setting is removed:

      • go_highlight_methods

    in favor of the following settings and changes:

    • go_highlight_functions: This highlights now all function and method declarations (whereas previously it would also highlight function and method calls, not anymore)
    • go_highlight_function_calls: This higlights now all all function and method calls. [GH-1557]
      • ๐Ÿ‘• Rename gg:go_metalinter_excludes to g:go_metalinter_disabled. [GH-1648]
      • :GoBuild doesn't append the -i flag anymore due the recent Go 1.10 changes that introduced a build cache. [GH-1701]
  • v1.16 Changes

    December 29, 2017

    ๐Ÿ”‹ FEATURES:

    • Add g:go_doc_url to change the godoc server from godoc.org to a custom private instance. Currently only godoc -http instances are supported. [GH-1957].
    • โœ… New setting g:go_test_prepend_name (off by default) to add the failing test name to the output of :GoTest [GH-1578].
    • ๐Ÿ‘Œ Support denite.vim for :GoDecls[Dir] [GH-1604].

    ๐Ÿ‘Œ IMPROVEMENTS:

    • :GoRename is a bit smarter when automatically pre-filling values, and what gets pre-filled can be configured with g:go_gorename_prefill option. In addition :GoRename <Tab> now lists some common options. [GH-1465].
    • ๐Ÿ— Add support for g:go_build_tags to the :GoTest family of functions. [GH-1562].
    • ๐Ÿ‘• Pass --tests to gometalinter when autosaving and when a custom gometalinter command has not been set. [GH-1563].
    • Do not spam messages when command is run in a directory that does not exist. [GH-1527].
    • ๐Ÿ”€ Run syntax sync fromstart after :GoFmt; this should make syntax highlighting break slightly less often after formatting code [GH-1582].
    • :GoDescribe doesn't require a scope anymore [GH-1596].
    • โž• Add some standard snippets for vim-minisnip [GH-1589].
    • g:go_snippet_engine now defaults to automatic to use the first installed snippet engine it can find. [GH-1589].
    • ๐Ÿ‘‰ Make sure temporary files created for :GoFmt end with .go suffix as this is required by some Go formatting tools [GH-1601].

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix compatibility with Vim version before 7.4.1546 [GH-1498].
    • Don't resize godoc window if it's already visible [GH-1488].
    • โœ… :GoTestCompile produces a test binary again. The test binary will be written to a temporary directory to avoid polluting the user's working directory. [GH-1519]
    • ๐Ÿ›  Fix incorrect :GoSameIdsToggle behavior when there were match groups present, but none were goSameId. [GH-1538]
    • ๐Ÿ›  Fix gpl snippet for UltiSnips. [GH-1535]
    • ๐Ÿ›  Fix test output processing to correctly handle panics and log statements. [GH-1513]
    • :GoImpl tab-completion would sometimes stop working [GH-1581].
    • Add g:go_highlight_function_arguments to highlight function arguments. [GH-1587].
    • ๐Ÿ›  Fix installation of gocode on MS-Windows. [GH-1606].
    • ๐Ÿ›  Fix template creation for files in directories that don't exist yet. [GH-1618].
    • ๐Ÿ›  Fix behavior of terminal windows and resize terminal windows correctly for all valid g:go_term_mode values. [GH-1611].

    BACKWARDS INCOMPATIBILITIES:

    • โš  Display a warning for Vim versions older than 7.4.1689. Older versions may still work, but are not supported. You can use let g:go_version_warning = 0 to disable the warning. [GH-1524].
    • g:go_autodetect_gopath is disabled by default, as support for vendor has been in Go for a while. Also change the implementation for g:go_autodetect_gopath; instead of manually setting it before every command it will now be set with the BufEnter event, and reset with the BufLeave event. This means that $GOPATH will be changed for all commands run from Vim. [GH-1461] and [GH-1525].
    • โšก๏ธ Update :GoFillStruct to check the current line (vs. the exact cursor position) for a struct literal to fill. To support this, fillstruct made backwards imcompatible changes. [GH-1607].
  • v1.15 Changes

    October 03, 2017

    ๐Ÿ”‹ FEATURES:

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿšš :GoAddTags and :GoRemoveTags now continue to process if there are malformed individual struct tags (run :GoUpdateBinaries to update gomodifiytags binary) [GH-1401]
    • ๐Ÿšš :GoAddTags and :GoRemoveTags now shows a location list if there are malformed struct tags (run :GoUpdateBinaries to update gomodifiytags binary) [GH-1401]
    • โž• Add folding of the package-level comment (enabled by default) and/or any other comments (disabled by default) [GH-1377]. [GH-1428].
    • ๐Ÿ‘ Allow using :GoImpl on the type and struct parts too. Makes it a wee bit easier to use [GH-1386]
    • :GoDef sets the path of new buffers as relative to the current directory when appropriate, instead of always using the full path [GH-1277].
    • 0๏ธโƒฃ Syntax highlighting for variable declarations and assignments (disabled by default) [GH-1426] and [GH-1458].
    • โž• Add support for :GoDecls[Dir] in unite.vim [GH-1391].
    • โž• Add support for fzf.vim in GoDecls[Dir]. [GH-1437].
    • ๐Ÿ‘Œ Support relative imports for :GoImpl [GH-1322].
    • A new g:go_list_type_commands setting is added to individually set the list type for each command [GH-1415]. As en example:

      let g:go_list_type_commands = {"GoBuild": "quickfix", "GoTest": "locationlist"}
      
    • ๐Ÿ‘‰ Show unexpected errors better by expanding newlines and tabs [GH-1456].

    • โšก๏ธ :GoInstallBinaries and :GoUpdateBinaries can now install/update only the selected binaries (e.g. :GoUpdateBinaries guru golint) [GH-1467].

    ๐Ÿ› BUG FIXES:

    • :GoFmt now (again) uses locationlist to show formatting errors instead of quickfix. To change back to locationlist you can change it with the setting let g:go_list_type_commands = { "GoFmt": locationlist" } [GH-1415]
    • Include comments in import block when folding is enabled [GH-1387]
    • ๐Ÿ›  Fix opening definitions in tabs [GH-1400]
    • ๐Ÿ›  Fix accidentally closing quickfix window from other commands if :GoFmt or autosave format was called [GH-1407]
    • ๐Ÿ›  Fix entering into insert mode after for term mode in nvim [GH-1411]
    • When using :GoImpl on type foo struct{} it would work, but with:

      type foo struct{
      }
      

    or with a struct with fields, it would create the generated methods inside the struct [GH-1386]

    • :GoImpl output would include extra newline, and error would include trailing newline from shell command: vim-go: invalid receiver: "} *}"<00>. Fixed with [GH-1386]
    • ๐Ÿ‘• Run :GoMetaLinter against the package of the open file [GH-1414].
    • The g:go_doc_command and g:go_doc_options to configure the command for :GoDoc were documented but never referenced [GH-1420].
    • ๐Ÿ“ฆ go#package#FromPath() didn't work correctly [GH-1435].
    • ๐Ÿ›  Fix race condition for guru based commands [GH-1439].
    • ๐Ÿ”Œ The gohtmltmpl filetype now sources the html ftplugin, so that matchit, completion, and some other things work better. [GH-1442]
    • ๐Ÿ›  Fix :GoBuild shell escaping [GH-1450].
    • Ensure fmt list gets closed when title cannot be checked [GH-1474].

    BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿ‘• :GoMetaLinter now runs against the package of the open file instead of the current working directory. This is so all commands behave the same relative to the current open buffer. [GH-1414]

    • :GoImpl now requires impl version 3fb19c2c or newer (released June 13, 2017); use :GoUpdateBinaries to make sure that you've got a recent version [GH-1322]

  • v1.14 Changes

    August 06, 2017

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ‘ We now have folding support based on Go syntax. To enable it you have to set the following Vim setting: set foldmethod=syntax. Currently it folds blocks ({ }), import, var, and const blocks, and package-level comments. These can be individually disabled/enabled if desired. For more info please read the documentation for the g:go_fold_enable setting. [GH-1339] [GH-1377]
    • :GoFiles accepts now an argument to change the type of files it can show. By default it shows.go source files but now it can be changed to show various kind of files. The full list can be seen via go list --help under the // Source Files section [GH-1372] i.e:
    :GoFiles CgoFiles        // shows .go sources files that import "C"
    :GoFiles TestGoFiles     // shows _test.go files in package
    :GoFiles IgnoredGoFiles  // shows .go sources ignored due to build constraints
    etc..
    

    ๐Ÿ‘Œ IMPROVEMENTS

    • โœ… Files created with _test.go extension have a new template with a ready to go test function. The template can be changed with the g:go_template_test_file setting. [GH-1318]
    • ๐Ÿ‘Œ Improve performance for highly used operations by caching go env calls [GH-1320]
    • โœ… :GoCoverage can accept arguments now. i.e: :GoCoverage -run TestFoo [GH-1326]
    • โš  :GoDecls and :GoDeclsDir shows a warning if ctrlp.vim is not installed
    • ๐Ÿ“ฆ :GoBuild now compiles the package with the -i flag added. This means that subsequent calls are much more faster due caching of packages [GH-1330]
    • :GoCoverage echos now the progress if g:go_echo_command_info is enabled [GH-1333]
    • Add g:go_doc_max_height setting to control the maximum height of the window created by :GoDoc and K mapping [GH-1335]
    • The af text object is able to include the assignment variable for anonymous functions. Can be disabled with g:go_textobj_include_variable = 0 [GH-1345]
    • Add g:go_list_autoclose setting to prevent closing the quickfix/location list after zero items [GH-1361]
    • Cursor is now adjusted and locked to the correct line when goimports is used for autosave [GH-1367]
    • Complement the path of command for different situations of Cygwin environment [GH-1394]
    • ๐Ÿ‘‰ Show message when using :GoDef and opening a new buffer [GH-1385]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix obtaining package's import path for the current directory. This fixes some issues we had if the user was using multiple GOPATH's [GH-1321]
    • ๐Ÿ›  Fix documentation for vim-go & syntastic integration for errcheck using [GH-1323]
    • ๐Ÿ›  Fix showing an output if a test has finished when :GoTest is called [GH-1327]
    • ๐Ÿ›  Fix warning when goimports doesn't support srcdir [GH-1344]
    • Fix broken code folding with go_highlight_types [GH-1338]
    • ๐Ÿ›  Fix blocking the ui when swapfile is enabled and :GoFmt is called (either manually or via autosave) [GH-1362]
    • ๐Ÿ›  Fix getting bin paths for binaries if GOPATH was not set and Go version =>1.7 was used [GH-1363]
    • ๐Ÿ›  Fix picking up the correct list type for showing :GoFmt errors [GH-1365]
    • ๐Ÿ›  Fix auto detecting of GOPATH for import paths with string 'src' (i.e: GOPATH/src/github.com/foo/src/bar) [GH-1366]
    • ๐Ÿ›  Fix showing an empty window if gogetdoc was not found [GH-1379]
    • ๐Ÿ›  Fix commands not being executed if paths would include spaces (binary name, GOPATH, file itself, etc..) [GH-1374]
    • ๐Ÿ›  Fix showing correct message when editing a new file [GH-1371]
    • ๐Ÿ›  Fix filepaths in the quickfix list for :GoVet [GH-1381]
    • ๐Ÿ‘• Run :GoLint against the package of the open file [GH-1382]

    BACKWARDS INCOMPATIBILITIES:

    • :GoFmt now uses quickfix to show formatting errors instead of locationlist. To change back to locationlist you can change it with the setting let g:go_list_type = "locationlist" [GH-1365]
    • ๐Ÿ‘• :GoLint now runs against the package of the open file instead of the current working directory. This is so all commands behave the same relative to the current open buffer. For more info check the comment here [GH-1382]
  • v1.13 Changes

    June 06, 2017

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ†• New :GoKeyify command that turns unkeyed struct literals into keyed struct literals. [GH-1258]. i.e:
    Example{"foo", "bar", "qux"}
    

    will be converted to:

    Example{
      foo: "foo",
      bar: "bar",
      qux: "qux",
    }
    

    Checkout the demo here: https://twitter.com/fatih/status/860410299714764802

    • โž• New g:go_addtags_transform setting to change the transform rule (snakecase, camelcase, etc..) for :GoAddTags command [GH-1275]
    • ๐Ÿ†• New snippet shortcut assigned to ife that expands to if err := foo(); err != nil { ... } [GH-1268]

    ๐Ÿ‘Œ IMPROVEMENTS

    • ๐Ÿ‘• :GoMetaLinter can now exclude linters with the new g:go_metalinter_excludes option [GH-1253]
    • 0๏ธโƒฃ Override <C-LeftMouse> mapping so :GoDef is used by default (as we do the same for CTRL-], gd, etc. [GH-1264]
    • add support for go_list_type setting in :GoFmt and :GoImports commands [GH-1304]
    • add support for go_list_type setting in :GoMetaLinter commands [GH-1309]
    • go_fmt_options can be now a dictionary to allow us to specifcy the options for multiple binaries [GH-1308]. i.e:
      let g:go_fmt_options = {
        \ 'gofmt': '-s',
        \ 'goimports': '-local mycompany.com',
        \ }
    
    • If win-vim(x64) with Cygwin is used, cygpath is used for constructing the paths [GH-1092]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ‘ท job: fix race between channel close and job exit [GH-1247]
    • internal: fix system calls when using tcsh [GH-1276]
    • path: return the unmodified GOPATH if autodetect is disabled [GH-1280]
    • ๐Ÿ›  fix jumping to quickfix window when autom gometalinter on save was enabled [GH-1293]
    • fix highlighting for interface and structs words when go_highlight_types is enabled [GH-1301]
    • ๐Ÿ›  fix cwd for running :GoRun when used with neovim [GH-1296]
    • ๐Ÿ‘ :GoFmt handles files that are symlinked into GOPATH better (note that this behaviour is discouraged, but we're trying our best to handle all edge case :)) [GH-1310]
    • โœ… :GoTest is able to parse error messages that include a colon : [GH-1316]
    • โœ… :GoTestCompile under the hood doesn't produces a test binary anymore. Sometimes a race condition would happen which would not delete the test binary. [GH-1317]
    • ๐Ÿ— :GoDef jumps now to definition for build tags defined with :GoBuildTags (only guru) [GH-1319]

    BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿ‘• :GoLint works on the whole directory instead of the current file. To use it for the current file give it as an argument, i.e :GoLint foo.go [GH-1295]
    • go_snippet_case_type is removed in favor of the new go_addtags_transform setting [GH-1299]
    • go_imports_bin is removed to avoid confusion as it would lead to race conditions when set to gofmt along with the usage of go_fmt_command [GH-1212] [GH-1308]
    • โ™ป๏ธ commands such as :GoTest has been refactored for easy maintainability. If you use any custom script that was using the function go#cmd#Test, it should be renamed to go#test#Test
  • v1.12 Changes

    March 29, 2017

    ๐Ÿ”‹ FEATURES:

    if err != nil {
      log.Fatal(err)
    }
    
    • ๐Ÿ†• New :GoBuildTags command to change build tags for tools such as guru, gorename, etc ... There is also a new setting called g:go_build_tags [GH-1232]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • vim-go works now even if GOPATH is not set (starting with Go 1.8) [GH-1248]
    • ๐Ÿ“š Lowercase <Leader> in mappings examples for consistent documentation across the README [GH-1192]
    • All of files should be written in utf-8 if the file will be passed to external command. [GH-1184]
    • :GoAddTags is now able to add options to existing tags with the syntax :GoAddTags key,option, i.e: :GoAddTags json,omitempty [GH-985]
    • Document 'noshowmode' requirement for echo_go_info [GH-1197]
    • ๐Ÿ‘Œ Improve godoc view for vertical splits [GH-1195]
    • ๐Ÿ”€ Set GOPATH for both possible go guru execution paths (sync and async) [GH-1193]
    • ๐Ÿ‘Œ Improve docs for :GoDef usage [GH-1242]
    • Highlight trimming syntax for Go templates [GH-1235]

    ๐Ÿ› BUG FIXES:

    • Honor g:go_echo_command_info when dispatching builds in neovim [GH-1176]
    • ๐Ÿ›  Fix :GoBuild error in neovim due to invalid jobcontrol handler function signatures (s:on_stdout, s:on_stderr)[GH-1176]
    • โšก๏ธ Update statusline before and after go#jobcontrol#Spawn command is executed [GH-1176]
    • Correctly report the value of the 'g:go_guru_tags' variable [GH-1177]
    • Ensure no trailing : exist in GOPATH detection if initial GOPATH is not set [GH-1194]
    • ๐Ÿ›  Fix :GoAddTags to allow modifying existing comments [GH-984]
    • ๐Ÿ›  Fix :GoAddTags to work with nested structs [GH-990]
    • ๐Ÿ›  Fix :GoAddTags adding tags twice for existing tags [GH-1064]
    • ๐Ÿ›  Fix :GoAddTags not working for fields of types interface{} [GH-1091]
    • ๐Ÿ›  Fix :GoAddTags not working for fields with one line comments [GH-1181]
    • ๐Ÿ›  Fix :GoAddTags not working if any field comment would contain {} [GH-1189]
    • Respect go_fmt_options when running goimports [GH-1211]
    • Set the filename in the location-list when there is an error with :GoFmt [GH-1199]
    • ๐Ÿ›  Fix :GoInstall to accept additional arguments if async mode was enabled [GH-1246]

    BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿšš The command :GoGuruTags is removed in favour of the new command :GoBuildTags. This command will be used now not just for guru, also for all new commands such as gorename [GH-1232]
    • The setting g:go_guru_tags is removed in favour of the new setting g:go_build_tags [GH-1232]
  • v1.11 Changes

    January 09, 2017

    ๐Ÿ”‹ FEATURES:

    • โœ… Travis test integration has been added. Now any file that is added as <name>_test.vim will be automatically tested in for every Pull Request (just like how we add tests to Go with _test.go). Going forward this will tremendously increase the stability and decrease the maintenance burden of vim-go. [GH-1157]
    • โž• Add new g:go_updatetime setting to change the default updatetime (which was hardcoded previously) [GH-1055]
    • Add new g:go_template_use_pkg setting to enable to use cwd as package name instead of basic template file [GH-1124]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โž• Add statusline support for :GoMetaLinter [GH-1120]
    • Quickfix and Location lists contain now a descriptive title (requires at least Vim 7.4.2200)[GH-1004]
    • 0๏ธโƒฃ Check go env GOPATH as well for :GoInstallBinaries as Go has now a default path for GOPATH ("~/go")starting with 1.8 [GH-1152]
    • ๐Ÿ’ป :GoDocBrowser now also works on import paths [GH-1174]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ“ฆ Always use full path to detect packages to be shown in statusline [GH-1121]
    • ๐Ÿ‘‰ Use echom to persist errors in case of multiple echos [GH-1122]
    • ๐Ÿ›  Fix a race condition where a quickfix window was not closed if a job has succeeded [GH-1123]
    • ๐Ÿ‘ท Do not expand coverage arguments for non job execution of :GoCoverage [GH-1127]
    • :GoCoverage doesn't mess up custom syntax anymore [GH-1128]
    • Disable autoformat for asm files as they might be non Go ASM format [GH-1141]
    • ๐Ÿ›  Fix indentation broken when using a action with a minus sign like {{- [GH-1143]
    • ๐Ÿ›  Fix breaking Neovim change of passing less arguments to callbacks [GH-1145]
    • ๐Ÿ›  Fix guru commands if custom build tags were set [GH-1136]
    • ๐Ÿ›  Fix referencing a non defined variable for async commands when bang (!) was used
    • ๐Ÿ›  Fix :GoDef failing for a modified buffer if hidden was not set [GH-1132]
    • ๐Ÿ›  Fix :GoDefStack to allow popping from jump list when buffer is modified [GH-1133]
    • ๐Ÿ‘Œ Improve internal defining of functions and referencing them for async operations [GH-1155]
    • ๐Ÿ‘• Fix :GoMetaLinter failing if go_metalinter_command is set. [GH-1160]
    • ๐Ÿ‘• Fix :GoMetaLinter's go_metalinter_deadline setting for async mode [GH-1146]

    BACKWARDS INCOMPATIBILITIES:

    • 0๏ธโƒฃ The following syntax options are now disabled by default. If you're using them be sure to set them in your .vimrc [GH-1167]
    g:go_highlight_array_whitespace_error
    g:go_highlight_chan_whitespace_error
    g:go_highlight_extra_types
    g:go_highlight_space_tab_error
    g:go_highlight_trailing_whitespace_error