package lsp

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

Package lsp implements LSP for gopls.

Index

Constants

const (
	// FromDidOpen is a file modification caused by opening a file.
	FromDidOpen = ModificationSource(iota)

	// FromDidChange is a file modification caused by changing a file.
	FromDidChange

	// FromDidChangeWatchedFiles is a file modification caused by a change to a
	// watched file.
	FromDidChangeWatchedFiles

	// FromDidSave is a file modification caused by a file save.
	FromDidSave

	// FromDidClose is a file modification caused by closing a file.
	FromDidClose

	// FromRegenerateCgo refers to file modifications caused by regenerating
	// the cgo sources for the workspace.
	FromRegenerateCgo

	// FromInitialWorkspaceLoad refers to the loading of all packages in the
	// workspace when the view is first created.
	FromInitialWorkspaceLoad
)
const WorkspaceLoadFailure = "Error loading workspace"

Functions

func DiagnosticWorkTitle

func DiagnosticWorkTitle(cause ModificationSource) string

DiagnosticWorkTitle returns the title of the diagnostic work resulting from a file change originating from the given cause.

func SemMods

func SemMods(n int) []string

SemMods returns the []string equivalent of the mods, for gopls semtok.

func SemType

func SemType(n int) string

SemType returns a string equivalent of the type, for gopls semtok

func SemanticModifiers

func SemanticModifiers() []string

SemanticModifiers to use in case there is no client.

func SemanticTypes

func SemanticTypes() []string

SemanticTypes to use in case there is no client, as in the command line, or tests

Types

type ModificationSource

type ModificationSource int

ModificationSource identifies the originating cause of a file modification.

func (ModificationSource) String

func (m ModificationSource) String() string

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server implements the protocol.Server interface.

func NewServer

func NewServer(session source.Session, client protocol.ClientCloser) *Server

NewServer creates an LSP server and binds it to handle incoming client messages on on the supplied stream.

func (*Server) CodeAction

func (s *Server) CodeAction(ctx context.Context, params *protocol.CodeActionParams) ([]protocol.CodeAction, error)

func (*Server) CodeLens

func (s *Server) CodeLens(ctx context.Context, params *protocol.CodeLensParams) ([]protocol.CodeLens, error)

func (*Server) CodeLensRefresh

func (s *Server) CodeLensRefresh(context.Context) error

func (*Server) ColorPresentation

func (*Server) Completion

func (s *Server) Completion(ctx context.Context, params *protocol.CompletionParams) (*protocol.CompletionList, error)

func (*Server) Declaration

func (*Server) Definition

func (s *Server) Definition(ctx context.Context, params *protocol.DefinitionParams) (protocol.Definition, error)

func (*Server) Diagnostic

func (s *Server) Diagnostic(context.Context, *string) (*string, error)

func (*Server) DiagnosticRefresh

func (s *Server) DiagnosticRefresh(context.Context) error

func (*Server) DiagnosticWorkspace

func (*Server) Diagnostics

func (s *Server) Diagnostics() map[string][]string

Diagnostics formattedfor the debug server (all the relevant fields of Server are private) (The alternative is to export them)

func (*Server) DidChange

func (s *Server) DidChange(ctx context.Context, params *protocol.DidChangeTextDocumentParams) error

func (*Server) DidChangeConfiguration

func (s *Server) DidChangeConfiguration(ctx context.Context, _gen *protocol.DidChangeConfigurationParams) error

func (*Server) DidChangeNotebookDocument

func (s *Server) DidChangeNotebookDocument(context.Context, *protocol.DidChangeNotebookDocumentParams) error

func (*Server) DidChangeWatchedFiles

func (s *Server) DidChangeWatchedFiles(ctx context.Context, params *protocol.DidChangeWatchedFilesParams) error

func (*Server) DidChangeWorkspaceFolders

func (s *Server) DidChangeWorkspaceFolders(ctx context.Context, params *protocol.DidChangeWorkspaceFoldersParams) error

func (*Server) DidClose

func (s *Server) DidClose(ctx context.Context, params *protocol.DidCloseTextDocumentParams) error

func (*Server) DidCloseNotebookDocument

func (s *Server) DidCloseNotebookDocument(context.Context, *protocol.DidCloseNotebookDocumentParams) error

func (*Server) DidCreateFiles

func (s *Server) DidCreateFiles(context.Context, *protocol.CreateFilesParams) error

func (*Server) DidDeleteFiles

func (s *Server) DidDeleteFiles(context.Context, *protocol.DeleteFilesParams) error

func (*Server) DidOpen

func (s *Server) DidOpen(ctx context.Context, params *protocol.DidOpenTextDocumentParams) error

func (*Server) DidOpenNotebookDocument

func (s *Server) DidOpenNotebookDocument(context.Context, *protocol.DidOpenNotebookDocumentParams) error

func (*Server) DidRenameFiles

func (s *Server) DidRenameFiles(context.Context, *protocol.RenameFilesParams) error

func (*Server) DidSave

func (s *Server) DidSave(ctx context.Context, params *protocol.DidSaveTextDocumentParams) error

func (*Server) DocumentColor

func (*Server) DocumentHighlight

func (s *Server) DocumentHighlight(ctx context.Context, params *protocol.DocumentHighlightParams) ([]protocol.DocumentHighlight, error)
func (s *Server) DocumentLink(ctx context.Context, params *protocol.DocumentLinkParams) ([]protocol.DocumentLink, error)

func (*Server) DocumentSymbol

func (s *Server) DocumentSymbol(ctx context.Context, params *protocol.DocumentSymbolParams) ([]interface{}, error)

func (*Server) ExecuteCommand

func (s *Server) ExecuteCommand(ctx context.Context, params *protocol.ExecuteCommandParams) (interface{}, error)

func (*Server) Exit

func (s *Server) Exit(ctx context.Context) error

func (*Server) FoldingRange

func (s *Server) FoldingRange(ctx context.Context, params *protocol.FoldingRangeParams) ([]protocol.FoldingRange, error)

func (*Server) Formatting

func (s *Server) Formatting(ctx context.Context, params *protocol.DocumentFormattingParams) ([]protocol.TextEdit, error)

func (*Server) Hover

func (s *Server) Hover(ctx context.Context, params *protocol.HoverParams) (*protocol.Hover, error)

func (*Server) Implementation

func (s *Server) Implementation(ctx context.Context, params *protocol.ImplementationParams) (protocol.Definition, error)

func (*Server) IncomingCalls

func (*Server) Initialize

func (s *Server) Initialize(ctx context.Context, params *protocol.ParamInitialize) (*protocol.InitializeResult, error)

func (*Server) Initialized

func (s *Server) Initialized(ctx context.Context, params *protocol.InitializedParams) error

func (*Server) InlineValues

func (*Server) InlineValuesRefresh

func (s *Server) InlineValuesRefresh(context.Context) error

func (*Server) LinkedEditingRange

func (*Server) LogTrace

func (*Server) Moniker

func (*Server) NonstandardRequest

func (s *Server) NonstandardRequest(ctx context.Context, method string, params interface{}) (interface{}, error)

func (*Server) OnTypeFormatting

func (*Server) OutgoingCalls

func (*Server) PrepareCallHierarchy

func (s *Server) PrepareCallHierarchy(ctx context.Context, params *protocol.CallHierarchyPrepareParams) ([]protocol.CallHierarchyItem, error)

func (*Server) PrepareRename

func (s *Server) PrepareRename(ctx context.Context, params *protocol.PrepareRenameParams) (*protocol.PrepareRename2Gn, error)

func (*Server) PrepareTypeHierarchy

func (*Server) RangeFormatting

func (*Server) References

func (s *Server) References(ctx context.Context, params *protocol.ReferenceParams) ([]protocol.Location, error)

func (*Server) Rename

func (s *Server) Rename(ctx context.Context, params *protocol.RenameParams) (*protocol.WorkspaceEdit, error)

func (*Server) Resolve

func (*Server) ResolveCodeAction

func (s *Server) ResolveCodeAction(context.Context, *protocol.CodeAction) (*protocol.CodeAction, error)

func (*Server) ResolveCodeLens

func (s *Server) ResolveCodeLens(context.Context, *protocol.CodeLens) (*protocol.CodeLens, error)
func (s *Server) ResolveDocumentLink(context.Context, *protocol.DocumentLink) (*protocol.DocumentLink, error)

func (*Server) ResolveWorkspaceSymbol

func (s *Server) ResolveWorkspaceSymbol(context.Context, *protocol.WorkspaceSymbol) (*protocol.WorkspaceSymbol, error)

func (*Server) SelectionRange

func (*Server) SemanticTokensFull

func (s *Server) SemanticTokensFull(ctx context.Context, p *protocol.SemanticTokensParams) (*protocol.SemanticTokens, error)

func (*Server) SemanticTokensFullDelta

func (s *Server) SemanticTokensFullDelta(ctx context.Context, p *protocol.SemanticTokensDeltaParams) (interface{}, error)

func (*Server) SemanticTokensRange

func (*Server) SemanticTokensRefresh

func (s *Server) SemanticTokensRefresh(ctx context.Context) error

func (*Server) SetTrace

func (*Server) Shutdown

func (s *Server) Shutdown(ctx context.Context) error

func (*Server) SignatureHelp

func (s *Server) SignatureHelp(ctx context.Context, params *protocol.SignatureHelpParams) (*protocol.SignatureHelp, error)

func (*Server) Subtypes

func (*Server) Supertypes

func (*Server) Symbol

func (*Server) TypeDefinition

func (s *Server) TypeDefinition(ctx context.Context, params *protocol.TypeDefinitionParams) (protocol.Definition, error)

func (*Server) WillCreateFiles

func (*Server) WillDeleteFiles

func (*Server) WillRenameFiles

func (*Server) WillSave

func (*Server) WillSaveWaitUntil

func (*Server) WorkDoneProgressCancel

func (s *Server) WorkDoneProgressCancel(ctx context.Context, params *protocol.WorkDoneProgressCancelParams) error

Source Files

call_hierarchy.go code_action.go code_lens.go command.go completion.go debounce.go definition.go diagnostics.go folding_range.go format.go general.go highlight.go hover.go implementation.go link.go references.go rename.go semantic.go server.go server_gen.go signature_help.go symbols.go text_synchronization.go workspace.go workspace_symbol.go

Directories

PathSynopsis
internal/lsp/analysis
internal/lsp/analysis/fillreturnsPackage fillreturns defines an Analyzer that will attempt to automatically fill in a return statement that has missing values with zero value elements.
internal/lsp/analysis/fillstructPackage fillstruct defines an Analyzer that automatically fills in a struct declaration with zero value elements for each field.
internal/lsp/analysis/infertypeargsPackage infertypeargs defines an analyzer that checks for explicit function arguments that could be inferred.
internal/lsp/analysis/nonewvarsPackage nonewvars defines an Analyzer that applies suggested fixes to errors of the type "no new variables on left side of :=".
internal/lsp/analysis/noresultvaluesPackage noresultvalues defines an Analyzer that applies suggested fixes to errors of the type "no result values expected".
internal/lsp/analysis/simplifycompositelitPackage simplifycompositelit defines an Analyzer that simplifies composite literals.
internal/lsp/analysis/simplifyrangePackage simplifyrange defines an Analyzer that simplifies range statements.
internal/lsp/analysis/simplifyslicePackage simplifyslice defines an Analyzer that simplifies slice statements.
internal/lsp/analysis/stubmethods
internal/lsp/analysis/undeclarednamePackage undeclaredname defines an Analyzer that applies suggested fixes to errors of the type "undeclared name: %s".
internal/lsp/analysis/unusedparamsPackage unusedparams defines an analyzer that checks for unused parameters of functions.
internal/lsp/analysis/useanyPackage useany defines an Analyzer that checks for usage of interface{} in constraints, rather than the predeclared any.
internal/lsp/browserPackage browser provides utilities for interacting with users' browsers.
internal/lsp/cachePackage cache implements the caching layer for gopls.
internal/lsp/cmdPackage cmd handles the gopls command line.
internal/lsp/cmd/testPackage cmdtest contains the test suite for the command line behavior of gopls.
internal/lsp/commandPackage command defines the interface provided by gopls for the workspace/executeCommand LSP request.
internal/lsp/command/commandmetaPackage commandmeta provides metadata about LSP commands, by analyzing the command.Interface type.
internal/lsp/command/genPackage gen is used to generate command bindings from the gopls command interface.
internal/lsp/debugPackage debug exports debug information for gopls.
internal/lsp/debug/logPackage log provides helper methods for exporting log events to the internal/event package.
internal/lsp/debug/tagPackage tag provides the labels used for telemetry throughout gopls.
internal/lsp/diffPackage diff supports a pluggable diff algorithm.
internal/lsp/diff/difftestPackage difftest supplies a set of tests that will operate on any implementation of a diff algorithm as exposed by "golang.org/x/tools/internal/lsp/diff"
internal/lsp/diff/myersPackage myers implements the Myers diff algorithm.
internal/lsp/fakePackage fake provides fake implementations of a text editor, LSP client plugin, and Sandbox environment for use in tests.
internal/lsp/fuzzyPackage fuzzy implements a fuzzy matching algorithm.
internal/lsp/helperInvoke with //go:generate helper/helper -t Server -d protocol/tsserver.go -u lsp -o server_gen.go invoke in internal/lsp
internal/lsp/lspposPackage lsppos provides utilities for working with LSP positions.
internal/lsp/lsprpcPackage lsprpc implements a jsonrpc2.StreamServer that may be used to serve the LSP on a jsonrpc2 channel.
internal/lsp/modPackage mod provides core features related to go.mod file handling for use by Go editors and tools.
internal/lsp/progress
internal/lsp/protocolPackage protocol contains the structs that map directly to the wire format of the "Language Server Protocol".
internal/lsp/regtestPackage regtest provides a framework for writing gopls regression tests.
internal/lsp/snippetPackage snippet implements the specification for the LSP snippet format.
internal/lsp/sourcePackage source provides core features for use by Go editors and tools.
internal/lsp/source/completionPackage completion provides core functionality for code completion in Go editors and tools.
internal/lsp/templatePackage template contains code for dealing with templates
internal/lsp/testsPackage tests exports functionality to be used across a variety of gopls tests.
internal/lsp/work
Version
v0.1.10
Published
Mar 15, 2022
Platform
js/wasm
Imports
42 packages
Last checked
6 hours ago

Tools for package owners.