[gopls-release-branch.0.7] all: merge master into gopls-release-branch.0.7

4fe0d6c80 internal/lsp: skip signature help within a string literal
0c506a274 internal/lsp/source: evaluate bin/hex literal on hover
46d1522a5 internal/lsp: add extract to method code action
c740bfd9b internal/lsp: handle incorrect import with CRLF line endings
251092de1 internal/lsp/source: compute imports text edits from scratch
412ee174e all: add SliceToArrayPointer instruction
7f68387a4 internal/lsp/source: workspace symbol improvements for selectors
7aa829446 internal/lsp: handle panic in fix AST
6e9046bfc gopls/doc: fix imports function for Neovim LSP
0cf4e2708 internal/lsp/semantic: improve semantic token processing
5061c412c internal/lsp: signal diagnostic completion if modification failed
ef97713d9 gopls/doc: add vetted examples for Sublime Text
8e85a283c internal/lsp: adopt bcmills' suggestion for an improved debouncer API
ae0deb7a4 internal/lsp: fix variable reuse bug in code actions
d36a54b56 internal/lsp: improve package search in a couple places
384460091 gopls/internal/regtest: add a flag to profile didChange handling
de4477617 gopls/doc: Neovim v0.5 is now stable
ccff7327b internal/lsp/source: fix comment update during rename for short variable declarations
a7dfe3d2b internal/lsp: attempt to make TestDebouncer more robust
980829d8a internal/lsp/lsprpc: add an AutoDialer abstraction
cb1acef8b Revert "internal/lsp/semantic.go: repress useless messages and tighten logic"
5b540d349 internal/lsp/semantic.go: repress useless messages and tighten logic
e33c0f293 go/packages: skip tests that link binaries in short mode
8e32e9f14 internal/lsp/regtest: fix a panic TestResolveImportCycle
2583041a9 go/packages: fix data race in TestCgoNoSyntax
69948257b go/ssa: incorrect document in type Builtin struct
e688b9451 go/packages: parallelize most tests
64bd808b7 internal/lsp/cache: don't report a context error if load succeeded
cae92d5d6 go/packages: skip GOPATH tests in short mode
2f04284e7 internal/lsp/regtest: allow for unsent diagnostics in TestResolveImportCycle
41a65bdc1 internal/lsp: avoid flake in TestDebouncer
1c9019e64 internal/lsp/cache: fix raciness of updating the view workspace
febfa9d67 internal/lsp/source: move diagnosticsDelay out of experimental
71eae3a1b internal/lsp/cache: be consistent about using snapshot.FileSet
251f28368 internal/lsp: add a setting to batch didChangeWatchedFile notifications
c979f9254 internal/lsp/cache: invalidate packages in setMetadata
55cd4804d gopls/doc: Document how gopls generates semantic tokens.
77c1b7a4f internal/lsp/cmd: print flags when running gopls help
640c1dea8 go/ssa: support unsafe.Add and unsafe.Slice
fd0057433 internal/lsp/protocol: upgrade generated lsp code to beginning of July
7edcfe523 internal/lsp/lsprpc: add a goenv middleware
e3040f272 internal/lsp/lsprpc: add a CommandInterceptor middleware
ea370293d internal/lsp/lsprpc: use middleware for the V2 handshaking
20dafe5d6 go/ssa: allow conversion from slice to array pointer
f0847e0ce go/callgraph: change reflect.Call to reflect.Value.Call in comment
72e4d1bb8 go/internal/cgo: handle symlinks with $PWD, not -srcdir
100b22926 internal/lsp/cache: treat load timeouts as critical errors
12f8456a0 internal/testenv: actually Exit if small machine for netbsd-arm*-bsiegert
00129ffdb internal/lsp/lsprpc: update binder tests to handle forwarding
fe2294a1b internal/jsonrpc2_v2: initialize async before binding
636017e13 internal/lsp/cache: fix missing pkg error on Windows
48cad5ecb tools/gopls: small fixes to contributing.md
da404b52b internal/lsp: start parsing go.work file like gopls.mod file
4833ac519 internal/mod: add workfile parser
bfc167431 internal/lsp/cache: fix loading of std and cmd
d824a7481 gopls/doc: include instructions for compiling generic code
6d3e43932 gopls/doc: add instructions for working with generic code
4c651fc1f internal/lsp/source: add inferred types to generic function hover
d25f90668  internal/lsp: do not block on channel when there is an error
463a76b3d internal/lsp: only reload invalid metadata when necessary
116feaea4 internal/lsp: move the progress tracker to the session
3f7c32638 gopls/internal/regtest: skip the flaky TestResolveImportCycle
b12e6172d internal/lsp/cache: don't delete metadata until it's reloaded
4b484fb13 internal/lsp: exclude the module cache from the workspace
9a55cb1fb internal/lsp/command: minor clean-up of StartDebugging description
490eac872 internal/lsp/command: add missing doc and support for result parameters
9aa007ed1 internal/lsp/cache: invalidate broken packages when imports are deleted
f6327c5b2 vta: adds the VTA call graph construction
13cf84452 go/ast/astutil: fix panic when rewriting multi-argument type instances
937957b6d vta: adds VTA graph propagation functionality
e0b9cf74f lsp/completion: support completing to Elem() types
16e5f5500 lsp/completion: search deeper for candidate type mods
b57987414 lsp/completion: reorganize how we track candidate type mods
890984ba2 internal/lsp: change generated variable names to be more verbose
9f230b562 internal/lsp: fix extract bug choosing available identifiers
4e58f8f09 internal/lsp: handle out of range panic in template parsing
716319fe5 vta: finalizes VTA graph construction by adding support for function calls
234f954de vta: extends VTA graph construction to handle collections
126df1d64 cmd/getgo: determine current version via /dl/?mode=json API
b9b845e62 internal/lsp: fix folding range for block comments
1225b6f53 internal/lsp: memoize allKnownSubdirs instead of recomputing
7295a4e73 lsp/completion: don't offer untyped conversions
bf132055d vta: adds VTA graph construction for basic program statements
8f2cf6ccf gopls/internal/regtest: clean up TestFillReturnsPanic
4abb1e2f2 internal/lsp: handle empty buffers in template parsing
7ac129f24 internal/lsp: don't diagnose/analyze intermediate test variants
1c2154ae3 internal/lsp: address some staticcheck warning

Change-Id: Ie2238b8bad61a238b46d1e5ae34e0c5fd13950be
tree: 3b36a5c50f08681a33cfe0051973b4fbd92392d1
  1. benchmark/
  2. blog/
  3. cmd/
  4. container/
  5. copyright/
  6. cover/
  7. go/
  8. godoc/
  9. gopls/
  10. imports/
  11. internal/
  12. playground/
  13. present/
  14. refactor/
  15. txtar/
  16. .gitattributes
  17. .gitignore
  18. .prettierrc
  19. AUTHORS
  20. codereview.cfg
  21. CONTRIBUTING.md
  22. CONTRIBUTORS
  23. go.mod
  24. go.sum
  25. LICENSE
  26. PATENTS
  27. README.md
README.md

Go Tools

PkgGoDev

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.

Download/Install

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.

JS/CSS Formatting

This repository uses prettier to format JS and CSS files.

The version of prettier used is 1.18.2.

It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI.

Report Issues / Send Patches

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.