This documentation is for advanced gopls
users, who may want to test
unreleased versions or try out special features.
To get a specific version of gopls
(for example, to test a prerelease
version), run:
$ go install golang.org/x/tools/[email protected]
Where vX.Y.Z
is the desired version.
To update gopls
to the latest unstable version, use the following
commands.
# Create an empty go.mod file, only for tracking requirements.
cd $(mktemp -d)
go mod init gopls-unstable
# Use 'go get' to add requirements and to ensure they work together.
go get -d golang.org/x/tools/gopls@master golang.org/x/tools@master
go install golang.org/x/tools/gopls
If you are working on the Go project itself, the go
command that gopls
invokes will have to correspond to the version of the source you are working
on. That is, if you have checked out the Go project to $HOME/go
, your go
command should be the $HOME/go/bin/go
executable that you built with
make.bash
or equivalent.
You can achieve this by adding the right version of go
to your PATH
(export PATH=$HOME/go/bin:$PATH
on Unix systems) or by configuring your
editor.
To work on both std
and cmd
simultaneously, add a go.work
file to
GOROOT/src
:
cd $(go env GOROOT)/src
go work init . cmd
Note that you must work inside the GOROOT/src
subdirectory, as the go
command does not recognize go.work
files in a parent of GOROOT/src
(https://go.dev/issue/59429).