Gopls: Command-line interface

The gopls command provides a number of subcommands that expose much of the server's functionality. However, the interface is currently experimental and subject to change at any point. It is not efficient, complete, flexible, or officially supported.

Its primary use is as a debugging aid. For example, this command reports the location of references to the symbol at the specified file/line/column:

$ gopls references ./gopls/main.go:35:8
Log: Loading packages...
Info: Finished loading packages.
/home/gopher/xtools/go/packages/gopackages/main.go:27:7-11
/home/gopher/xtools/gopls/internal/cmd/integration_test.go:1062:7-11
/home/gopher/xtools/gopls/internal/test/integration/bench/bench_test.go:59:8-12
/home/gopher/xtools/gopls/internal/test/integration/regtest.go:140:8-12
/home/gopher/xtools/gopls/main.go:35:7-11

See golang/go#63693 for a discussion of its future.

Learn about available commands and flags by running gopls help.

Positions within files are specified as file.go:line:column triples, where the line and column start at 1, and columns are measured in bytes of the UTF-8 encoding. Alternatively, positions may be specified by the byte offset within the UTF-8 encoding of the file, starting from zero, for example file.go:#1234. (When working in non-ASCII files, beware that your editor may report a position's offset within its file using a different measure such as UTF-16 codes, Unicode code points, or graphemes).