gopls is a Go language server. It is typically used with an editor to provide language features. When no command is specified, gopls will default to the 'serve' command. The language features can also be accessed via the gopls command-line interface. Usage: gopls help [] Command: Main serve run a server for Go code using the Language Server Protocol version print the gopls version information bug report a bug in gopls help print usage information for subcommands api-json print json describing gopls API licenses print licenses of included software Features call_hierarchy display selected identifier's call hierarchy check show diagnostic results for the specified file definition show declaration of selected identifier folding_ranges display selected file's folding ranges format format the code according to the go standard highlight display selected identifier's highlights implementation display selected identifier's implementation imports updates import statements remote interact with the gopls daemon inspect interact with the gopls daemon (deprecated: use 'remote') links list links in a file prepare_rename test validity of a rename operation at location references display selected identifier's references rename rename selected identifier semtok show semantic tokens for the specified file signature display selected identifier's signature fix apply suggested fixes symbols display selected file's symbols workspace manage the gopls workspace (experimental: under development) workspace_symbol search symbols in workspace vulncheck run experimental vulncheck analysis (experimental: under development) flags: -debug=string serve debug information on the supplied address -listen=string address on which to listen for remote connections. If prefixed by 'unix;', the subsequent address is assumed to be a unix domain socket. Otherwise, TCP is used. -listen.timeout=duration when used with -listen, shut down the server when there are no connected clients for this duration -logfile=string filename to log to. if value is "auto", then logging to a default output file is enabled -mode=string no effect -ocagent=string the address of the ocagent (e.g. http://localhost:55678), or off (default "off") -port=int port on which to run gopls for debugging purposes -profile.cpu=string write CPU profile to this file -profile.mem=string write memory profile to this file -profile.trace=string write trace log to this file -remote=string forward all commands to a remote lsp specified by this flag. With no special prefix, this is assumed to be a TCP address. If prefixed by 'unix;', the subsequent address is assumed to be a unix domain socket. If 'auto', or prefixed by 'auto;', the remote address is automatically resolved based on the executing environment. -remote.debug=string when used with -remote=auto, the -debug value used to start the daemon -remote.listen.timeout=duration when used with -remote=auto, the -listen.timeout value used to start the daemon (default 1m0s) -remote.logfile=string when used with -remote=auto, the -logfile value used to start the daemon -rpc.trace print the full rpc trace in lsp inspector format -v,-verbose verbose output -vv,-veryverbose very verbose output