commit | 138c814f66f4c0aa3ec9a1ede8c3355eddff441d | [log] [tgz] |
---|---|---|
author | Muir Manders <muir@mnd.rs> | Fri Feb 28 21:03:44 2020 -0800 |
committer | Rebecca Stambler <rstambler@golang.org> | Tue Mar 10 21:06:53 2020 +0000 |
tree | 6b8a7e9ff9ec60fb42c227aa6bf67c3aa853c94a | |
parent | 20ab64c0d93f083c2eb6362b7f17c7e094783a84 [diff] |
internal/lsp/source: offer completion "if err != nil { return err }" Now we offer an error-check-and-return completion candidate when appropriate: func myFunc() (int, error) { f, err := os.Open("foo") <> } offers the candidate: if err != nil { return 0, <err> } where <> denotes a placeholder so you can easily alter "err". The completion will only be offered when: 1. The position is in a function that returns an error as final result value, and 2. The statement preceding position is an assignment whose final LHS value is an error. The completion will contain zero values for the non-error return values as necessary. Using the above example, the completion will be offered after the user has typed: i if if err Basically the candidate will be offered after every keystroke as the user types "if err". I call this new type of completion a statement completion - perfect for when you want to make a statement! Change-Id: I0a330e1c1fa81a2757d3afc84c24e853f46f26b0 Reviewed-on: https://go-review.googlesource.com/c/tools/+/221613 Run-TryBot: Muir Manders <muir@mnd.rs> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
This subrepository holds the source for various packages and tools that support the Go programming language.
Some of the tools, godoc
and vet
for example, are included in binary Go distributions.
Others, including the Go guru
and the test coverage tool, can be fetched with go get
.
Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.
The easiest way to install is to run go get -u golang.org/x/tools/...
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/tools
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/tools/(your subdir):” in the subject line, so it is easy to find.