commit | 1f1f5f5d5753bd1efa20508d9cf76bf3d6549d7a | [log] [tgz] |
---|---|---|
author | Ian Cottrell <iancottrell@google.com> | Fri Mar 29 11:13:22 2019 -0400 |
committer | Ian Cottrell <iancottrell@google.com> | Fri Mar 29 19:59:38 2019 +0000 |
tree | be6e52ce8d7e757ace92a96150d42c7a7d0a4f90 | |
parent | a8f40b3f4d73b4863d04b4ad6b0337d3a78f5eaa [diff] |
internal/lsp: decouple message processing from stream processing. The means that the stream reader can move forward while a message is being processed. This will significantly improve responsivness and cancellation handling, and also allow message handlers to send messages themselves, reducing the need to spin up new go routines inside handlers. The flow control changes from blocking to failing when a server is busy, which removes the main current cause of deadlock, but may break non deadlock cases that currently wait if the queue is not sufficiently large. Change-Id: Ia73eb049b38d0651344abdbf16c477a8ce1a6fd1 Reviewed-on: https://go-review.googlesource.com/c/tools/+/170007 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.