golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
122.92k stars 17.52k forks source link

x/tools/gopls: support for bazel-based projects #37205

Open gonzojive opened 4 years ago

gonzojive commented 4 years ago

What version of Go are you using (go version)?

$ go version
go version go1.13.1 linux/amd64

Does this issue reproduce with the latest release?

n/a

What operating system and processor architecture are you using (go env)?

n/a

What did you do?

Wrote a project with bazel with .go files and .proto files. The protobufs generate go code, which I'm not sure how to make understandable to gopls. Code completion for this code does not work in VSCode.

What did you expect to see?

  1. Documentation of how to set up a Bazel-based project in the User guide.
  2. An example project that works and loads in an IDE like VS Code

What did you see instead?

Scattered information on the level of support and no example projects.

Related links:

  1. https://github.com/bazelbuild/rules_go/issues/512 - main source of updates on gopackagesdriver progress
  2. https://github.com/bazelbuild/rules_go/wiki/Editor-and-tool-integration: Design doc for gopackagesdriver - I'm not sure how accurate this is
  3. https://github.com/microsoft/vscode-go/issues/2755 - gopls support for GOPACKAGESDRIVER in VS Code
  4. https://github.com/bazelbuild/rules_go/issues/393 - editor integration issue for rules_go
  5. https://github.com/golang/go/issues/34341 - documentation request for GOPACKAGESDRIVER
  6. Code: jmhodges/rules_go/go/tools/gopackagesdriver, gopackagesdriver in rules_go feature branch, tools/go/packages/external.go seems to implement the external packages driver
gopherbot commented 4 years ago

Thank you for filing a gopls issue! Please take a look at the Troubleshooting guide, and make sure that you have provided all of the relevant information here.

stamblerre commented 4 years ago

Did you use @jmhodges's Bazel implementation for GOPACKAGESDRIVER when you tried out gopls with Bazel? Is it ready for use?

gonzojive commented 4 years ago

I did not try out jmhodge's implementation yet - I just browsed the code there.

stamblerre commented 4 years ago

I see. We don't support any build system that doesn't have an official gopackagesdriver, so I will defer to @jmhodges and @jayconrod on the status of that work.

jayconrod commented 4 years ago

Tracking issue for that is bazelbuild/rules_go#512.