Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CacheGetParams ¶
type CacheGetParams struct { // Key is the cache key. The key namespace is shared for a language // server, but with other language servers. For example the PHP // language server on different workspaces share the same key // namespace, but does not share the namespace with a Go language // server. Key string `json:"key"` }
CacheGetParams is the input for 'cache/get'. The response is any or null.
type CacheSetParams ¶
type CacheSetParams struct { // Key is the cache key. The key namespace is shared for a language // server, but with other language servers. For example the PHP // language server on different workspaces share the same key // namespace, but does not share the namespace with a Go language // server. Key string `json:"key"` // Value is type any. We use json.RawMessage since we expect caching // implementation to cache the raw bytes, and not bother with // Unmarshaling/Marshalling. Value *json.RawMessage `json:"value"` }
CacheSetParams is the input for the notification 'cache/set'.
type ContentParams ¶
type ContentParams struct {
TextDocument lsp.TextDocumentIdentifier `json:"textDocument"`
}
ContentParams is the input for 'textDocument/content'. The response is a 'TextDocumentItem'.
type FilesParams ¶
type FilesParams struct {
Base string `json:"base,omitempty"`
}
FilesParams is the input for 'workspace/xfiles'. The response is '[]TextDocumentIdentifier'
type ImplementationLocation ¶
type ImplementationLocation struct { lsp.Location // the location of the implementation // Type is the type of implementation relationship described by this location. // // If a type T was queried, the set of possible values are: // // - "to": named or ptr-to-named types assignable to interface T // - "from": named interfaces assignable from T (or only from *T if Ptr == true) // // If a method M on type T was queried, the same set of values above is used, except they refer // to methods on the described type (not the described type itself). // // (This type description is taken from golang.org/x/tools/cmd/guru.) Type string `json:"type,omitempty"` // Ptr is whether this implementation location is only assignable from a pointer *T (where T is // the queried type). Ptr bool `json:"ptr,omitempty"` // Method is whether a method was queried. If so, then the implementation locations refer to the // corresponding methods on the types found by the implementation query (not the types // themselves). Method bool `json:"method"` }
ImplementationLocation is a superset of lsp.Location with additional Go-specific information about the implementation.
type PartialResultParams ¶
type PartialResultParams struct { // ID is the jsonrpc2 ID of the request we are returning partial // results for. ID lsp.ID `json:"id"` // Patch is a JSON patch as specified at http://jsonpatch.com/ // // It is an interface{}, since our only requirement is that it JSON // marshals to a valid list of JSON Patch operations. Patch interface{} `json:"patch"` }
PartialResultParams is the input for "$/partialResult", a notification.
type ReferenceInformation ¶
type ReferenceInformation struct { // Reference is the location in the workspace where the `symbol` has been // referenced. Reference lsp.Location `json:"reference"` // Symbol is metadata information describing the symbol being referenced. Symbol SymbolDescriptor `json:"symbol"` }
ReferenceInformation represents information about a reference to programming constructs like variables, classes, interfaces etc.
type SymbolDescriptor ¶
type SymbolDescriptor map[string]interface{}
SymbolDescriptor represents information about a programming construct like a variable, class, interface, etc that has a reference to it. It is up to the language server to define the schema of this object.
SymbolDescriptor usually uniquely identifies a symbol, but it is not guaranteed to do so.
func (SymbolDescriptor) Contains ¶
func (s SymbolDescriptor) Contains(other SymbolDescriptor) bool
Contains tells if this SymbolDescriptor fully contains all of the keys and values in the other symbol descriptor.
func (SymbolDescriptor) String ¶
func (s SymbolDescriptor) String() string
String returns a consistently ordered string representation of the SymbolDescriptor. It is useful for testing.
type SymbolLocationInformation ¶
type SymbolLocationInformation struct { // A concrete location at which the definition is located, if any. Location lsp.Location `json:"location,omitempty"` // Metadata about the definition. Symbol SymbolDescriptor `json:"symbol"` }
SymbolLocationInformation is the response type for the `textDocument/xdefinition` extension.
type WorkspaceReferencesParams ¶
type WorkspaceReferencesParams struct { // Query represents metadata about the symbol that is being searched for. Query SymbolDescriptor `json:"query"` // Hints provides optional hints about where the language server should // look in order to find the symbol (this is an optimization). It is up to // the language server to define the schema of this object. Hints map[string]interface{} `json:"hints,omitempty"` // Limit if positive will limit the number of results returned. Limit int `json:"limit,omitempty"` }
WorkspaceReferencesParams is parameters for the `workspace/xreferences` extension
See: https://github.com/sourcegraph/language-server-protocol/blob/master/extension-workspace-reference.md
type WorkspaceSymbolParams ¶
type WorkspaceSymbolParams struct { Query string `json:"query,omitempty"` Limit int `json:"limit"` Symbol SymbolDescriptor `json:"symbol,omitempty"` }
WorkspaceSymbolParams is the extension workspace/symbol parameter type.