tools: golang.org/x/tools/internal/lsp/cmd Index | Files | Directories

package cmd

import "golang.org/x/tools/internal/lsp/cmd"

Package cmd handles the gopls command line. It contains a handler for each of the modes, along with all the flag handling and the command line output format.

Index

Package Files

call_hierarchy.go check.go cmd.go definition.go folding_range.go format.go highlight.go implementation.go imports.go info.go inspect.go links.go prepare_rename.go references.go rename.go semantictokens.go serve.go signature.go suggested_fix.go symbols.go workspace.go workspace_symbol.go

Constants

const (
    SemanticLeft  = "/*⇐"
    SemanticRight = "/*⇒"
)

prefixes for semantic token comments

Variables

var ErrInvalidRenamePosition = errors.New("request is not valid at the given position")

ErrInvalidRenamePosition is returned when prepareRename is run at a position that is not a candidate for renaming.

func CloseTestConnections Uses

func CloseTestConnections(ctx context.Context)

CloseTestConnections terminates shared connections used in command tests. It should only be called from tests.

type Application Uses

type Application struct {

    // Embed the basic profiling flags supported by the tool package
    tool.Profile

    // We include the server configuration directly for now, so the flags work
    // even without the verb.
    // TODO: Remove this when we stop allowing the serve verb by default.
    Serve Serve

    // Support for remote LSP server.
    Remote string `flag:"remote" help:"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."`

    // Verbose enables verbose logging.
    Verbose bool `flag:"v" help:"verbose output"`

    // VeryVerbose enables a higher level of verbosity in logging output.
    VeryVerbose bool `flag:"vv" help:"very verbose output"`

    // Control ocagent export of telemetry
    OCAgent string `flag:"ocagent" help:"the address of the ocagent (e.g. http://localhost:55678), or off"`

    // PrepareOptions is called to update the options when a new view is built.
    // It is primarily to allow the behavior of gopls to be modified by hooks.
    PrepareOptions func(*source.Options)
    // contains filtered or unexported fields
}

Application is the main application as passed to tool.Main It handles the main command line parsing and dispatch to the sub commands.

func New Uses

func New(name, wd string, env []string, options func(*source.Options)) *Application

New returns a new Application ready to run.

func (*Application) DetailedHelp Uses

func (app *Application) DetailedHelp(f *flag.FlagSet)

DetailedHelp implements tool.Application returning the main binary help. This includes the short help for all the sub commands.

func (*Application) Name Uses

func (app *Application) Name() string

Name implements tool.Application returning the binary name.

func (*Application) Run Uses

func (app *Application) Run(ctx context.Context, args ...string) error

Run takes the args after top level flag processing, and invokes the correct sub command as specified by the first argument. If no arguments are passed it will invoke the server sub command, as a temporary measure for compatibility.

func (*Application) ShortHelp Uses

func (app *Application) ShortHelp() string

ShortHelp implements tool.Application returning the main binary help.

func (*Application) Usage Uses

func (app *Application) Usage() string

Usage implements tool.Application returning empty extra argument usage.

type Definition Uses

type Definition struct {
    Span        span.Span `json:"span"`        // span of the definition
    Description string    `json:"description"` // description of the denoted object
}

A Definition is the result of a 'definition' query.

type Serve Uses

type Serve struct {
    Logfile     string        `flag:"logfile" help:"filename to log to. if value is \"auto\", then logging to a default output file is enabled"`
    Mode        string        `flag:"mode" help:"no effect"`
    Port        int           `flag:"port" help:"port on which to run gopls for debugging purposes"`
    Address     string        `flag:"listen" help:"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."`
    IdleTimeout time.Duration `flag:"listen.timeout" help:"when used with -listen, shut down the server when there are no connected clients for this duration"`
    Trace       bool          `flag:"rpc.trace" help:"print the full rpc trace in lsp inspector format"`
    Debug       string        `flag:"debug" help:"serve debug information on the supplied address"`

    RemoteListenTimeout time.Duration `flag:"remote.listen.timeout" help:"when used with -remote=auto, the -listen.timeout value used to start the daemon"`
    RemoteDebug         string        `flag:"remote.debug" help:"when used with -remote=auto, the -debug value used to start the daemon"`
    RemoteLogfile       string        `flag:"remote.logfile" help:"when used with -remote=auto, the -logfile value used to start the daemon"`
    // contains filtered or unexported fields
}

Serve is a struct that exposes the configurable parts of the LSP server as flags, in the right form for tool.Main to consume.

func (*Serve) DetailedHelp Uses

func (s *Serve) DetailedHelp(f *flag.FlagSet)

func (*Serve) Name Uses

func (s *Serve) Name() string

func (*Serve) Run Uses

func (s *Serve) Run(ctx context.Context, args ...string) error

Run configures a server based on the flags, and then runs it. It blocks until the server shuts down.

func (*Serve) ShortHelp Uses

func (s *Serve) ShortHelp() string

func (*Serve) Usage Uses

func (s *Serve) Usage() string

Directories

PathSynopsis
testPackage cmdtest contains the test suite for the command line behavior of gopls.

Package cmd imports 33 packages (graph) and is imported by 3 packages. Updated 2020-11-26. Refresh now. Tools for package owners.