Fork 0
mirror of synced 2024-05-27 12:31:12 -04:00

1451 lines
86 KiB
Raw Normal View History

2017-02-11 08:01:38 -05:00
## unplanned
2016-12-27 09:46:49 -05:00
2019-01-08 05:11:54 -05:00
2019-03-08 06:04:56 -05:00
* g:go_highlight_function_arguments is renamed to g:go_highlight_function_parameters
2019-01-08 05:11:54 -05:00
2018-12-17 06:28:27 -05:00
* Disable `g:go_gocode_propose_source` by default.
* Don't spam users when Vim is run with vi compatibility.
* Add bang support to lint commands to allow them to be run without jumping to
* Use `go doc` for `:GoDoc` instead of `godoc`.
* Detach from and shutdown dlv correctly.
* Do not require `'autowrite'` or `'autowriteall'` to be set when using
autocompletion in module mode.
2019-01-08 05:11:54 -05:00
* Fix use of g:go_metalinter_command _and_ apply it even when autosaving.
* Report errors in quickfix when Delve fails to start (e.g. compiler errors).
2019-03-08 06:04:56 -05:00
* Support undo_ftplugin, make most autocmd's buffer-local, and only do the bare
minimum based on file names alone.
* Write a message when `:GoInfo` can't display any results when `g:go_info_mode='gocode'`.
* Highlight fields followed by an operator when `g:go_highlight_fields` is set.
* Skip autosave actions when the buffer is not a readable file.
* Run `godef` from the current buffer's directory to make sure it works with modules.
* Add a function, `go#tool#DescribeBalloon`, to show information in a balloon
with `'balloonexpr`. (Vim8 only).
2018-12-17 06:28:27 -05:00
* Fix opening of non-existent file from `:GoDeclsDir` when the current
directory is not the directory containing the current buffer.
* Fix jumping to an identifier with godef from a modified buffer.
* Fix errors when `g:go_debug` contains `debugger-commands`.
* Fix errors from `:GoDebugStop` in Neovim.
* Fix `:GoSameIdsToggle`.
2019-01-08 05:11:54 -05:00
* Do not set fileencoding or fileformat options or populate from template when
the buffer is not modifiable.
* Do not clear buffer-local autocmds of other buffers.
* Highlight return parameter types when g:go_highlight_function_arguments is set.
2019-03-08 06:04:56 -05:00
* Fix lockup in Neovim when trying to run `:GoDebugTest` when there are no tests.
* Keep track of breakpoints correctly when buffer is edited after breakpoints
are set.
* Fix race conditions in `:GoDebugStop`.
* Fix jumping to module or package using godef.
2018-12-17 06:28:27 -05:00
## 1.19 - (November 4, 2018)
2018-09-24 20:40:17 -04:00
* **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:
2018-07-19 08:52:53 -04:00
* Unify async job handling for Vim8 and Neovim.
2018-07-30 17:18:16 -04:00
* Document Vim and Neovim requirements in README.md and help file.
2018-08-25 12:13:42 -04:00
* Highlight `context.Context` when `g:go_highlight_extra_types` is set.
* Run gometalinter asynchronously in Neovim.
* Run gorename asynchronously in Vim8 and Neovim.
* Install keyify from its canonical import path.
2018-09-24 20:40:17 -04:00
* Update the tested version of Neovim to v0.3.1.
* Run autocompletion asynchronously in Vim8 and Neovim.
* Show statusline update when running `:GoInfo` with `g:go_info_mode='gocode'`.
* Do not update statusline when highlighting sameids or showing type info via
an autocmd.
* Do not indent within a raw string literal.
* Highlight Go's predeclared function identifiers (the functions in `builtins`)
using keyword groups and highlight them using the `Identifiers` group.
* Add a new FAQ entry to instruct users how to modify the vim-go highlight
* Improve use of statusline and progress messages.
* 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).
* Add `<Plug>(go-decls)` and `<Plug>(go-decls-dir)` mappings.
* Handle go1.11 test output.
* Internal: install tools by their custom names
2018-11-01 06:03:42 -04:00
* Support the go-debugger features in Neovim.
* color the statusline for termguicolors and Neovim.
* add an option to disable highlighting of breakpoints and the current line
when debugging.
* Update autocompletion to work with Go modules.
2018-12-17 06:28:27 -05:00
* Add an option to search $GOPATH/bin or $GOBIN _after_ $PATH.
2018-07-30 17:18:16 -04:00
* Fix `:GoRun %` on Windows.
2018-08-25 12:13:42 -04:00
* Fix `go#complete#GetInfo()` to return a description of the identifier.
* Restore support for running tests in the Neovim terminal.
* Fix `:GoInfo` when `g:go_info_mode` is `gocode`
2018-09-24 20:40:17 -04:00
* Fix highlighting of pointer type in var blocks.
* Fix `:GoImport` when adding to an empty import block (i.e`import ()`)
2018-11-01 06:03:42 -04:00
* Run shell commands with shellcmdflag set to `-c`.
* Use the correct log output option for delve.
* Pass empty arguments correctly in async jobs on Windows.
* Don't close godoc scratch window when using arrow keys.
2018-08-25 12:13:42 -04:00
* Bump minimum required version of Vim to 7.4.2009.
2018-09-24 20:40:17 -04:00
* Switch gocode to github.com/mdempsky/gocode. Several gocode options have been
removed and a new one has been added.
2018-07-19 08:52:53 -04:00
## 1.18 - (July 18, 2018)
2018-06-14 06:31:12 -04:00
2018-07-04 06:53:25 -04:00
* 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:
2018-07-19 08:52:53 -04:00
func doSomething() (string, error) {
f, err := os.Open("file")
2018-09-24 20:40:17 -04:00
2018-07-19 08:52:53 -04:00
func doSomething() (string, error) {
f, err := os.Open("file")
if err != nil {
return "", err
2018-07-04 06:53:25 -04:00
2018-06-14 06:31:12 -04:00
* 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](https://github.com/fatih/motion). You can update the tool from Vim
via `:GoUpdateBinaries`
* Add `:GoPointsTo` to show all variables to which the pointer under the cursor
may point to.
* Add `:GoReportGitHubIssue` to initialize a new GitHub issue with as much data
that our template requests as possible.
* Add build tags (with `g:go_build_tags`) to all commands that support it.
* 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`.
* Don't return an error from `:GoGuru` functions when the import path is
unknown and scope is unneeded.
* Performance improvements for the `go.vim` syntax file.
* Allow `GoDebugBreakpoint` and `GoDebugCurrent` highlight groups to be
overridden by user configuration.
* Strip trailing carriage returns from quickfix errors that are parsed
manually. [[GH-1861]](https://github.com/fatih/vim-go/pull/1861).
* Cleanup title of terminal window.
2018-07-19 08:52:53 -04:00
* 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)
2018-06-14 06:31:12 -04:00
* 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
* Apply debugger mappings only for Go buffers, and not all buffers.
* The `gohtmltmpl` filetype will now highlight `{{ .. }}` syntax HTML attributes
and some other locations.
2018-11-01 06:03:42 -04:00
* Use the correct logging flag argument for delve.
2018-06-14 06:31:12 -04:00
* Fix gocode option string values that would cause gocode settings not to set
* Fix Neovim handling of guru output.
2018-07-19 08:52:53 -04:00
* Execute commands correctly when they are in $GOBIN but not $PATH.
* Open files correctly with ctrlp.
* Fix checking guru binary path
* Add build tags to `:GoDef` if only it's present
2018-06-14 06:31:12 -04:00
2018-03-31 10:56:26 -04:00
## 1.17 - (March 27, 2018)
* **Debugger support!** Add integrated support for the
2019-03-08 06:04:56 -05:00
[`delve`](https://github.com/go-delve/delve) debugger. Use
2018-03-31 10:56:26 -04:00
`:GoInstallBinaries` to install `dlv`, and see `:help go-debug` to get
2018-02-04 06:35:08 -05:00
* Add descriptions to neosnippet abbrevations.
* 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.
2018-03-31 10:56:26 -04:00
* Redraw the screen before executing blocking calls to gocode.
* Add `fe` -> `fmt.Errorf()` snippet for NeoSnippet and UltiSnippets.
* Use the async api when calling guru from neovim.
* Use the async api when calling gocode to get type info.
* Cache import path lookups to improve responsiveness.
2018-02-04 06:35:08 -05:00
* Create quickfix list correctly when tests timeout.
* Apply `g:go_test_timeout` when running `:GoTestFunc`.
* The user's configured `g:go_doc_url` variable wasn't working correctly in the
case when the "gogetdoc" command isn't installed.
* Highlight format specifiers with an index (e.g. `%[2]d`).
* Respect `g:go_test_show_name` change for `:GoTest` when it changes during a
Vim session.
* Show `g:go_test_show_name` value for `:GoTest` failures if it's available.
* Make sure linter errors for the file being saved are shown in vim74 and nvim.
* 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.
* Make sure gometalinter is run on the given directories when arguments are
given to :GoMetaLinter.
* Do not run disabled linters with `gometalinter`.
* Do not prompt user to press enter after when `gometalinter` is called in
autosave mode.
* Fix potential race conditions when using vim8 jobs.
* Treat `'autowriteall'` the same as `'autowrite'` when determining whether to
write a buffer before calling some commands.
* Show the file location of test errors when the message is empty or begins
with a newline.
2018-03-31 10:56:26 -04:00
* Fix minisnip on Windows.
* Keep alternate filename when loading an autocreate template.
* Parse the column number in errors correctly in vim8 and neovim.
* Fix race conditions in the terminal handling for neovim.
* Put the user back in the original window regardless of the value of
`splitright` after starting a neovim terminal window.
2018-02-04 06:35:08 -05:00
* 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
* `go_highlight_methods`
2018-03-31 10:56:26 -04:00
in favor of the following settings and changes:
2018-02-04 06:35:08 -05:00
* `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.
* Rename g`g:go_metalinter_excludes` to `g:go_metalinter_disabled`.
2018-03-31 10:56:26 -04:00
* `:GoBuild` doesn't append the `-i` flag anymore due the recent Go 1.10
changes that introduced a build cache.
2018-02-04 06:35:08 -05:00
## 1.16 - (December 29, 2017)
* 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.
* New setting `g:go_test_prepend_name` (off by default) to add the failing test
name to the output of `:GoTest`
* Support [denite.vim](https://github.com/Shougo/denite.nvim) for `:GoDecls[Dir]`
* `: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.
* Add support for `g:go_build_tags` to the `:GoTest` family of functions.
* Pass `--tests` to gometalinter when autosaving and when a custom gometalinter
command has not been set.
* Do not spam messages when command is run in a directory that does not exist.
* Run `syntax sync fromstart` after `:GoFmt`; this should make syntax
highlighting break slightly less often after formatting code
* `:GoDescribe` doesn't require a scope anymore
* Add some standard snippets for
* `g:go_snippet_engine` now defaults to `automatic` to use the first installed
snippet engine it can find.
* Make sure temporary files created for `:GoFmt` end with `.go` suffix as this
is required by some Go formatting tools
* Fix compatibility with Vim version before 7.4.1546
* Don't resize godoc window if it's already visible
* `: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]](https://github.com/fatih/vim-go/pull/1519)
* Fix incorrect `:GoSameIdsToggle` behavior when there were match groups
present, but none were goSameId.
* Fix `gpl` snippet for UltiSnips.
* Fix test output processing to correctly handle panics and log statements.
* `:GoImpl` tab-completion would sometimes stop working
* Add `g:go_highlight_function_arguments` to highlight function arguments.
* Fix installation of `gocode` on MS-Windows.
2018-02-04 06:35:08 -05:00
* Fix template creation for files in directories that don't exist yet.
* Fix behavior of terminal windows and resize terminal windows correctly for
all valid `g:go_term_mode` values.
2017-09-02 06:43:18 -04:00
* 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.
* `g:go_autodetect_gopath` is *disabled* by default, as support for `vendor` has
been in Go for a while.<br>
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]](https://github.com/fatih/vim-go/pull/1461) and
2018-02-04 06:35:08 -05:00
* 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
## 1.15 - (October 3, 2017)
* Add `:GoFillStruct` to fill a struct with all fields; uses
2017-09-02 06:43:18 -04:00
* `:GoAddTags` and `:GoRemoveTags` now continue to process if there are
malformed individual struct tags (run `:GoUpdateBinaries` to update
`gomodifiytags` binary) [[GH-1401]](https://github.com/fatih/vim-go/pull/1401)
* `:GoAddTags` and `:GoRemoveTags` now shows a location list if there are
malformed struct tags (run `:GoUpdateBinaries` to update `gomodifiytags`
binary) [[GH-1401]](https://github.com/fatih/vim-go/pull/1401)
* Add folding of the package-level comment (enabled by default) and/or any
other comments (disabled by default) [[GH-1377]](https://github.com/fatih/vim-go/pull/1377).
* Allow using :GoImpl on the type and struct parts too. Makes it a wee bit
easier to use [[GH-1386]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/1277).
* Syntax highlighting for variable declarations and assignments (disabled by default)
[[GH-1426]](https://github.com/fatih/vim-go/pull/1426) and
* Add support for `:GoDecls[Dir]` in [unite.vim](https://github.com/Shougo/unite.vim)
* Add support for [fzf.vim](https://github.com/junegunn/fzf.vim) in
* Support relative imports for `:GoImpl` [[GH-1322]](https://github.com/fatih/vim-go/pull/1322).
* A new `g:go_list_type_commands` setting is added to individually set the list type for each command [[GH-1415]](https://github.com/fatih/vim-go/pull/1415). As en example:
let g:go_list_type_commands = {"GoBuild": "quickfix", "GoTest": "locationlist"}
* Show unexpected errors better by expanding newlines and tabs
* `:GoInstallBinaries` and `:GoUpdateBinaries` can now install/update only the
selected binaries (e.g. `:GoUpdateBinaries guru golint`)
2017-09-02 06:43:18 -04:00
* `: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]](https://github.com/fatih/vim-go/pull/1415)
* Include comments in import block when folding is enabled [[GH-1387]](https://github.com/fatih/vim-go/pull/1387)
* Fix opening definitions in tabs [[GH-1400]](https://github.com/fatih/vim-go/pull/1400)
* Fix accidentally closing quickfix window from other commands if :GoFmt or autosave format was called [[GH-1407]](https://github.com/fatih/vim-go/pull/1407)
* Fix entering into insert mode after for term mode in nvim [[GH-1411]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/1386)
* Run `:GoMetaLinter` against the package of the open file [[GH-1414]](https://github.com/fatih/vim-go/pull/1414).
* The `g:go_doc_command` and `g:go_doc_options` to configure the command for
`:GoDoc` were documented but never referenced [[GH-1420]](https://github.com/fatih/vim-go/pull/1420).
* `go#package#FromPath()` didn't work correctly [[GH-1435]](https://github.com/fatih/vim-go/pull/1435).
* Fix race condition for `guru` based commands [[GH-1439]](https://github.com/fatih/vim-go/pull/1439).
* The `gohtmltmpl` filetype now sources the `html` ftplugin, so that `matchit`,
completion, and some other things work better.
* Fix `:GoBuild` shell escaping [[GH-1450]](https://github.com/fatih/vim-go/pull/1450).
* Ensure fmt list gets closed when title cannot be checked [[GH-1474]](https://github.com/fatih/vim-go/pull/1474).
* `: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]](https://github.com/fatih/vim-go/pull/1414)
* `:GoImpl` now requires [`impl`](https://github.com/josharian/impl) version
3fb19c2c or newer (released June 13, 2017); use `:GoUpdateBinaries` to make
sure that you've got a recent version [[GH-1322]](https://github.com/fatih/vim-go/pull/1322)
2017-09-02 06:43:18 -04:00
## 1.14 - (August 6, 2017)
* 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]](https://github.com/fatih/vim-go/pull/1339)
2017-09-02 06:43:18 -04:00
* `: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]](https://github.com/fatih/vim-go/pull/1372) i.e:
2017-09-02 06:43:18 -04:00
: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
2017-07-06 08:57:35 -04:00
2017-09-02 06:43:18 -04:00
* 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]](https://github.com/fatih/vim-go/pull/1318)
* Improve performance for highly used operations by caching `go env` calls [[GH-1320]](https://github.com/fatih/vim-go/pull/1320)
* `:GoCoverage` can accept arguments now. i.e: `:GoCoverage -run TestFoo` [[GH-1326]](https://github.com/fatih/vim-go/pull/1326)
2017-07-06 08:57:35 -04:00
* `:GoDecls` and `:GoDeclsDir` shows a warning if [ctrlp.vim](https://github.com/ctrlpvim/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]](https://github.com/fatih/vim-go/pull/1330)
* `:GoCoverage` echos now the progress if `g:go_echo_command_info` is enabled [[GH-1333]](https://github.com/fatih/vim-go/pull/1333)
* Add `g:go_doc_max_height` setting to control the maximum height of the window created by `:GoDoc` and `K` mapping [[GH-1335]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/1345)
* Add `g:go_list_autoclose` setting to prevent closing the quickfix/location list after zero items [[GH-1361]](https://github.com/fatih/vim-go/pull/1361)
* Cursor is now adjusted and locked to the correct line when `goimports` is used for autosave [[GH-1367]](https://github.com/fatih/vim-go/pull/1367)
* Complement the path of command for different situations of Cygwin environment [[GH-1394]](https://github.com/fatih/vim-go/pull/1394)
* Show message when using :GoDef and opening a new buffer [[GH-1385]](https://github.com/fatih/vim-go/pull/1385)
2017-09-02 06:43:18 -04:00
2017-07-06 08:57:35 -04:00
* 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]](https://github.com/fatih/vim-go/pull/1321)
* Fix documentation for vim-go & syntastic integration for errcheck using [[GH-1323]](https://github.com/fatih/vim-go/pull/1323)
* Fix showing an output if a test has finished when `:GoTest` is called [[GH-1327]](https://github.com/fatih/vim-go/pull/1327)
* Fix warning when goimports doesn't support srcdir [[GH-1344]](https://github.com/fatih/vim-go/pull/1344)
* Fix broken code folding with go_highlight_types [[GH-1338]](https://github.com/fatih/vim-go/pull/1338)
* Fix blocking the ui when swapfile is enabled and `:GoFmt` is called (either manually or via autosave) [[GH-1362]](https://github.com/fatih/vim-go/pull/1362)
* Fix getting bin paths for binaries if GOPATH was not set and Go version =>1.7 was used [[GH-1363]](https://github.com/fatih/vim-go/pull/1363)
* Fix picking up the correct list type for showing `:GoFmt` errors [[GH-1365]](https://github.com/fatih/vim-go/pull/1365)
* Fix auto detecting of GOPATH for import paths with string 'src' (i.e: `GOPATH/src/github.com/foo/src/bar`) [[GH-1366]](https://github.com/fatih/vim-go/pull/1366)
* Fix showing an empty window if `gogetdoc` was not found [[GH-1379]](https://github.com/fatih/vim-go/pull/1379)
* Fix commands not being executed if paths would include spaces (binary name, GOPATH, file itself, etc..) [[GH-1374]](https://github.com/fatih/vim-go/pull/1374)
* Fix showing correct message when editing a new file [[GH-1371]](https://github.com/fatih/vim-go/pull/1371)
* Fix filepaths in the quickfix list for :GoVet [[GH-1381]](https://github.com/fatih/vim-go/pull/1381)
* Run :GoLint against the package of the open file [[GH-1382]](https://github.com/fatih/vim-go/pull/1382)
2017-09-02 06:43:18 -04:00
* `: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]](https://github.com/fatih/vim-go/pull/1365)
2017-09-02 06:43:18 -04:00
* `: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
2017-09-02 06:43:18 -04:00
2017-07-06 08:57:35 -04:00
## 1.13 - (June 6, 2017)
2017-05-26 05:30:32 -04:00
* New `:GoKeyify` command that turns unkeyed struct literals into keyed struct literals. [[GH-1258]](https://github.com/fatih/vim-go/pull/1258). i.e:
2017-07-06 08:57:35 -04:00
Example{"foo", "bar", "qux"}
will be converted to:
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]](https://github.com/fatih/vim-go/pull/1275)
* New snippet shortcut assigned to `ife` that expands to `if err := foo(); err != nil { ... }` [[GH-1268]](https://github.com/fatih/vim-go/pull/1268)
2017-05-26 05:30:32 -04:00
2017-05-02 08:42:08 -04:00
* :GoMetaLinter can now exclude linters with the new `g:go_metalinter_excludes` option [[GH-1253]](https://github.com/fatih/vim-go/pull/1253)
* Override `<C-LeftMouse>` mapping so `:GoDef` is used by default (as we do the same for `CTRL-]`, `gd`, etc. [[GH-1264]](https://github.com/fatih/vim-go/pull/1264)
* add support for `go_list_type` setting in `:GoFmt` and `:GoImports` commands [[GH-1304]](https://github.com/fatih/vim-go/pull/1304)
* add support for `go_list_type` setting in `:GoMetaLinter` commands [[GH-1309]](https://github.com/fatih/vim-go/pull/1309)
2017-07-06 08:57:35 -04:00
* `go_fmt_options` can be now a dictionary to allow us to specifcy the
options for multiple binaries [[GH-1308]](https://github.com/fatih/vim-go/pull/1308). i.e:
2017-07-06 08:57:35 -04:00
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]](https://github.com/fatih/vim-go/pull/1092)
2017-05-02 08:42:08 -04:00
* job: fix race between channel close and job exit [[GH-1247]](https://github.com/fatih/vim-go/pull/1247)
* internal: fix system calls when using tcsh [[GH-1276]](https://github.com/fatih/vim-go/pull/1276)
* path: return the unmodified GOPATH if autodetect is disabled [[GH-1280]](https://github.com/fatih/vim-go/pull/1280)
* fix jumping to quickfix window when autom gometalinter on save was enabled [[GH-1293]](https://github.com/fatih/vim-go/pull/1293)
* fix highlighting for `interface` and `structs` words when `go_highlight_types` is enabled [[GH-1301]](https://github.com/fatih/vim-go/pull/1301)
* fix cwd for running `:GoRun` when used with neovim [[GH-1296]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/1310)
* `:GoTest` is able to parse error messages that include a colon `:` [[GH-1316]](https://github.com/fatih/vim-go/pull/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]](https://github.com/fatih/vim-go/pull/1317)
* `:GoDef` jumps now to definition for build tags defined with `:GoBuildTags` (only guru) [[GH-1319]](https://github.com/fatih/vim-go/pull/1319)
2017-05-26 05:30:32 -04:00
* `: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]](https://github.com/fatih/vim-go/pull/1295)
* `go_snippet_case_type` is removed in favor of the new `go_addtags_transform` setting [[GH-1299]](https://github.com/fatih/vim-go/pull/1299)
2017-07-06 08:57:35 -04:00
* `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]](https://github.com/fatih/vim-go/pull/1212) [[GH-1308]](https://github.com/fatih/vim-go/pull/1308)
2017-07-06 08:57:35 -04:00
* 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`
2017-05-02 08:42:08 -04:00
2017-04-01 07:22:06 -04:00
## 1.12 - (March 29, 2017)
2016-12-27 09:46:49 -05:00
2017-03-14 11:16:07 -04:00
* New `:GoAddTags` and `:GoRemoveTags` command based on the tool
[gomodifytags](https://github.com/fatih/gomodifytags). This fixes many old
bugs that were due prior regexp based implementation. For the usage please
read the docs and checkout the demo at:
https://github.com/fatih/vim-go/pull/1204 [[GH-1204]](https://github.com/fatih/vim-go/pull/1204)
* Add new `errl` snippet that expands to [[GH-1185]](https://github.com/fatih/vim-go/pull/1185):
2017-02-11 08:01:38 -05:00
if err != nil {
2017-02-11 08:01:38 -05:00
2017-03-14 11:16:07 -04:00
* 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`
2017-02-11 08:01:38 -05:00
* vim-go works now even if GOPATH is not set (starting with Go 1.8) [[GH-1248]](https://github.com/fatih/vim-go/pull/1248)
* Lowercase `<Leader>` in mappings examples for consistent documentation across the README [[GH-1192]](https://github.com/fatih/vim-go/pull/1192)
* All of files should be written in utf-8 if the file will be passed to external command. [[GH-1184]](https://github.com/fatih/vim-go/pull/1184)
2017-03-14 11:16:07 -04:00
* `:GoAddTags` is now able to add options to existing tags with the syntax
`:GoAddTags key,option`, i.e: `:GoAddTags json,omitempty` [[GH-985]](https://github.com/fatih/vim-go/pull/985)
* Document 'noshowmode' requirement for echo_go_info [[GH-1197]](https://github.com/fatih/vim-go/pull/1197)
* Improve godoc view for vertical splits [[GH-1195]](https://github.com/fatih/vim-go/pull/1195)
* Set GOPATH for both possible go guru execution paths (sync and async) [[GH-1193]](https://github.com/fatih/vim-go/pull/1193)
* Improve docs for :GoDef usage [[GH-1242]](https://github.com/fatih/vim-go/pull/1242)
* Highlight trimming syntax for Go templates [[GH-1235]](https://github.com/fatih/vim-go/pull/1235)
2017-02-11 08:01:38 -05:00
* Honor `g:go_echo_command_info` when dispatching builds in neovim [[GH-1176]](https://github.com/fatih/vim-go/pull/1176)
2017-03-14 11:16:07 -04:00
* Fix `:GoBuild` error in neovim due to invalid jobcontrol handler function
signatures (`s:on_stdout`, `s:on_stderr`)[[GH-1176]](https://github.com/fatih/vim-go/pull/1176)
* Update statusline before and after `go#jobcontrol#Spawn` command is executed [[GH-1176]](https://github.com/fatih/vim-go/pull/1176)
* Correctly report the value of the 'g:go_guru_tags' variable [[GH-1177]](https://github.com/fatih/vim-go/pull/1177)
* Ensure no trailing `:` exist in GOPATH detection if initial GOPATH is not set [[GH-1194]](https://github.com/fatih/vim-go/pull/1194)
* Fix `:GoAddTags` to allow modifying existing comments [[GH-984]](https://github.com/fatih/vim-go/pull/984)
* Fix `:GoAddTags` to work with nested structs [[GH-990]](https://github.com/fatih/vim-go/pull/990)
* Fix `:GoAddTags` adding tags twice for existing tags [[GH-1064]](https://github.com/fatih/vim-go/pull/1064)
* Fix `:GoAddTags` not working for fields of types `interface{}` [[GH-1091]](https://github.com/fatih/vim-go/pull/1091)
* Fix `:GoAddTags` not working for fields with one line comments [[GH-1181]](https://github.com/fatih/vim-go/pull/1181)
* Fix `:GoAddTags` not working if any field comment would contain `{}` [[GH-1189]](https://github.com/fatih/vim-go/pull/1189)
* Respect go_fmt_options when running goimports [[GH-1211]](https://github.com/fatih/vim-go/pull/1211)
* Set the filename in the location-list when there is an error with :GoFmt [[GH-1199]](https://github.com/fatih/vim-go/pull/1199)
* Fix `:GoInstall` to accept additional arguments if async mode was enabled [[GH-1246]](https://github.com/fatih/vim-go/pull/1246)
2017-03-07 12:04:28 -05:00
2017-03-14 11:16:07 -04:00
* 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]](https://github.com/fatih/vim-go/pull/1232)
2017-03-14 11:16:07 -04:00
* The setting `g:go_guru_tags` is removed in favour of the new setting
`g:go_build_tags` [[GH-1232]](https://github.com/fatih/vim-go/pull/1232)
2017-03-14 11:16:07 -04:00
2017-02-11 08:01:38 -05:00
## 1.11 - (January 9, 2017)
2017-09-02 06:43:18 -04:00
* 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]](https://github.com/fatih/vim-go/pull/1157)
* Add new `g:go_updatetime` setting to change the default updatetime (which was hardcoded previously) [[GH-1055]](https://github.com/fatih/vim-go/pull/1055)
* Add new `g:go_template_use_pkg` setting to enable to use cwd as package name instead of basic template file [[GH-1124]](https://github.com/fatih/vim-go/pull/1124)
2016-12-27 09:46:49 -05:00
* Add `statusline` support for `:GoMetaLinter` [[GH-1120]](https://github.com/fatih/vim-go/pull/1120)
* Quickfix and Location lists contain now a descriptive title (requires at least Vim `7.4.2200`)[[GH-1004]](https://github.com/fatih/vim-go/pull/1004)
* Check `go env GOPATH` as well for `:GoInstallBinaries` as Go has now a default path for GOPATH ("~/go")starting with 1.8 [[GH-1152]](https://github.com/fatih/vim-go/pull/1152)
* `:GoDocBrowser` now also works on import paths [[GH-1174]](https://github.com/fatih/vim-go/pull/1174)
2016-12-27 09:46:49 -05:00
* Always use full path to detect packages to be shown in statusline [[GH-1121]](https://github.com/fatih/vim-go/pull/1121)
* Use `echom` to persist errors in case of multiple echos [[GH-1122]](https://github.com/fatih/vim-go/pull/1122)
* Fix a race condition where a quickfix window was not closed if a job has succeeded [[GH-1123]](https://github.com/fatih/vim-go/pull/1123)
* Do not expand coverage arguments for non job execution of `:GoCoverage` [[GH-1127]](https://github.com/fatih/vim-go/pull/1127)
* `:GoCoverage` doesn't mess up custom syntax anymore [[GH-1128]](https://github.com/fatih/vim-go/pull/1128)
* Disable autoformat for `asm` files as they might be non Go ASM format [[GH-1141]](https://github.com/fatih/vim-go/pull/1141)
* Fix indentation broken when using a action with a minus sign like `{{-` [[GH-1143]](https://github.com/fatih/vim-go/pull/1143)
* Fix breaking Neovim change of passing less arguments to callbacks [[GH-1145]](https://github.com/fatih/vim-go/pull/1145)
* Fix `guru` commands if custom build tags were set [[GH-1136]](https://github.com/fatih/vim-go/pull/1136)
2016-12-27 09:46:49 -05:00
* 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]](https://github.com/fatih/vim-go/pull/1132)
* Fix `:GoDefStack` to allow popping from jump list when buffer is modified [[GH-1133]](https://github.com/fatih/vim-go/pull/1133)
* Improve internal defining of functions and referencing them for async operations [[GH-1155]](https://github.com/fatih/vim-go/pull/1155)
* Fix `:GoMetaLinter` failing if `go_metalinter_command` is set. [[GH-1160]](https://github.com/fatih/vim-go/pull/1160)
* Fix `:GoMetaLinter`'s `go_metalinter_deadline` setting for async mode [[GH-1146]](https://github.com/fatih/vim-go/pull/1146)
2017-02-11 08:01:38 -05:00
* The following syntax options are now disabled by default. If you're using them be sure to set them in your .vimrc [[GH-1167]](https://github.com/fatih/vim-go/pull/1167)
2017-02-11 08:01:38 -05:00
2016-12-27 09:46:49 -05:00
## 1.10 (November 24, 2016)
* **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.
2016-06-11 09:56:50 -04:00
2017-03-07 12:04:28 -05:00
* We have now a [logo for vim-go](https://github.com/fatih/vim-go/blob/master/assets/vim-go.png)! Thanks to @egonelbre for his work on this.
2016-12-27 09:46:49 -05:00
* `: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 if `guru` 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 add `let
g:go_metalinter_autosave = 1` (persistent) to your virmc).
2017-03-07 12:04:28 -05:00
* All `guru` commands run asynchronously if Vim 8.0 is being used. Current
2016-12-27 09:46:49 -05:00
* GoImplements
* GoWhicherrs
* GoCallees
* GoDescribe
* GoCallers
* GoCallstack
* GoFreevars
* GoChannelPeers
* GoReferrers
2016-12-27 09:46:49 -05:00
* `: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)
2017-03-07 12:04:28 -05:00
or add `let g:go_auto_sameids = 1` (persistent) to your vimrc.
2016-12-27 09:46:49 -05:00
* `:GoInfo` is now non blocking and works in async mode if `guru` is used in
`g: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 add `let
g:go_auto_type_info = 1` (persistent) to your vimrc. To use `guru` instead of
`gocode` add following to your vimrc: `let g:go_info_mode = 'guru'`
The `guru` is more accurate and reliabed due the usage of `guru` describe. It
doesn't rely on `pkg/` folder like `gocode` does. However it's slower than
`gocode` as there is no caching mechanism in `guru` 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 your `vimrc`. 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+=%*
2016-10-02 07:37:21 -04:00
2016-11-09 12:22:55 -05:00
2016-12-27 09:46:49 -05:00
* **: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]](https://github.com/fatih/vim-go/pull/1048)
2016-12-27 09:46:49 -05:00
* 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]](https://github.com/fatih/vim-go/pull/1084)
2016-12-27 09:46:49 -05:00
* 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](https://blog.filippo.io/stale-goroot-and-gorebuild/)) . This is now
fixed by introducing automatic GOROOT set/unset before each tool invoke.
2016-12-27 09:46:49 -05:00
* Added new setting `g:go_echo_go_info` to enable/disable printing identifier
information when completion is done [[GH-1101]](https://github.com/fatih/vim-go/pull/1101)
2016-12-27 09:46:49 -05:00
* 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* if `go#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]](https://github.com/fatih/vim-go/pull/1089)
2016-12-27 09:46:49 -05:00
2016-11-09 12:22:55 -05:00
2016-10-02 07:37:21 -04:00
* Change back nil and iota highlighting color to the old type [[GH-1049]](https://github.com/fatih/vim-go/pull/1049)
* Fix passing arguments to `:GoBuild` while using NeoVim [[GH-1062]](https://github.com/fatih/vim-go/pull/1062)
* Do not open a split if `:GoDef` is used on a modified file [[GH-1083]](https://github.com/fatih/vim-go/pull/1083)
* Highlight nested structs correctly [[GH-1075]](https://github.com/fatih/vim-go/pull/1075)
* Highlight builtin functions correctly if `g:go_highlight_functions` is enabled [[GH-1070]](https://github.com/fatih/vim-go/pull/1070)
* Fix `:GoSameIds` highlighting if a new buffer is opened in the same window [[GH-1067]](https://github.com/fatih/vim-go/pull/1067)
* Internal: add `abort` to all vim function to return in case of errors [[GH-1100]](https://github.com/fatih/vim-go/pull/1100)
* Fix `:GoCoverage` to be executed if working dir is not inside the test dir [[GH-1033]](https://github.com/fatih/vim-go/pull/1033)
2016-12-27 09:46:49 -05:00
* 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
extensible `go#statusline#Show()`
2016-10-02 07:37:21 -04:00
## 1.9 (September 13, 2016)
2016-08-02 08:48:32 -04:00
2016-07-03 07:53:59 -04:00
2016-08-02 08:48:32 -04:00
* **guru** uses now the `-modified` flag, which allows us use guru on modified
buffers as well. This affects all commands where `guru` is used. Such as
`:GoDef`, `:GoReferrers`, etc.. [[GH-944]](https://github.com/fatih/vim-go/pull/944)
* **:GoDoc** uses now the `-modified` flag under the hood (for `gogetdoc), which allows us to get documentation for the identifier under the cursor ina modified buffer. [[GH-1014]](https://github.com/fatih/vim-go/pull/1014)
* Cleanup and improve documentation [[GH-987]](https://github.com/fatih/vim-go/pull/987)
* Add new `g:go_gocode_socket_type` setting to change the underlying socket type passed to `gocode`. Useful to fallback to `tcp` on cases such as Bash on Windows [[GH-1000]](https://github.com/fatih/vim-go/pull/1000)
* `:GoSameIds` is now automatically re-evaluated in cases of buffer reloads (such as `:GoRename`) [[GH-998]](https://github.com/fatih/vim-go/pull/998)
* Improve docs about `go_auto_sameids` [[GH-1017]](https://github.com/fatih/vim-go/pull/1017)
* Improve error message by printing the full path if an incompatible `goimports` is being used [[GH-1006]](https://github.com/fatih/vim-go/pull/1006)
* `iota` and `nil` are now highlighted correctly and are not treated as booleans [[GH-1030]](https://github.com/fatih/vim-go/pull/1030)
2016-08-02 08:48:32 -04:00
* Fix system calls on Windows [[GH-988]](https://github.com/fatih/vim-go/pull/988)
* Fix :GoSameIds and :GoCoverage for light background and after changing color schemes [[GH-983]](https://github.com/fatih/vim-go/pull/983)
* Fix TagBar and `GoCallers` for Windows user [[GH-999]](https://github.com/fatih/vim-go/pull/999)
* Set updatetime for for `auto_sameids` feature as well [[GH-1016]](https://github.com/fatih/vim-go/pull/1016)
* Update docs about missing `go_highlight_generate_tags` setting [[GH-1023]](https://github.com/fatih/vim-go/pull/1023)
* Fix updating the jumplist if `:GoDef` is used [[GH-1029]](https://github.com/fatih/vim-go/pull/1029)
* Fix highlighting literal percent sign (`%%`) in strings [[GH-1011]](https://github.com/fatih/vim-go/pull/1011)
* Fix highlighting of nested fields [[GH-1007]](https://github.com/fatih/vim-go/pull/1007)
* Fix checking for `exepath` feature for the upcoming vim 8.0 release [[GH-1046]](https://github.com/fatih/vim-go/pull/1046)
2016-10-02 07:37:21 -04:00
2016-08-02 08:48:32 -04:00
* Rename `GoMetalinterAutoSaveToggle` to `GoMetaLinterAutoSaveToggle` to make it compatible with the existing `:GoMetaLinter` command [[GH-1020]](https://github.com/fatih/vim-go/pull/1020)
2016-08-02 08:48:32 -04:00
## 1.8 (July 31, 2016)
* New **`:GoAddTags`** command that adds field tags for the fields of a struct automatically based on the field names. Checkout the demo to see it in action: https://twitter.com/fatih/status/759822857773907968 [[GH-971]](https://github.com/fatih/vim-go/pull/971)
* The snippet expansion `json` is now much more smarter. It pre populates the placeholder according to the first word and it also applies `snake_case` or `camelCase` conversion. Together with `:GoAddTags` it gives `vim-go` users flexible ways of populating a field tag. Checkout the demo to see it in action: https://twitter.com/fatih/status/754477622042689536 [[GH-927]](https://github.com/fatih/vim-go/pull/927)
* New **`:GoSameIds`** command. When called highlights all same identifiers in the current file. Can be also enabled to highlight identifiers automatically (with `:GoSameIdsAutoToggle` or `g:go_auto_sameids`). Checkout the demo to see it in action: https://twitter.com/fatih/status/753673709278339072. [[GH-936]](https://github.com/fatih/vim-go/pull/936)
* New **`:GoWhicherrs`** command. It shows all possible values of the selected error variable. [[GH-948]](https://github.com/fatih/vim-go/pull/948)
* Add new `errp` snippet to expand an `if err != nil { panic() }` clause [[GH-926]](https://github.com/fatih/vim-go/pull/926)
* If you open a new buffer with a Go filename it get automatically populated based on the directory. If there are no Go files a simple main package is created, otherwise the file will include the package declaration line based on the package in the current directory. Checkout the demo to see it in action: https://twitter.com/fatih/status/748333086643994624. This is enabled by default. Can be disabled with `let g:go_template_autocreate = 0`. You can use your own template with `let g:go_template_file = "foo.go"` and putting the file under the `templates/` folder. [[GH-918]](https://github.com/fatih/vim-go/pull/918)