Documentation
¶
Overview ¶
Package lsp provides a generic JSON-RPC 2.0 client for communicating with Language Server Protocol servers via stdin/stdout.
Index ¶
- Constants
- type CallHierarchyCapability
- type CallHierarchyIncomingCall
- type CallHierarchyIncomingCallsParams
- type CallHierarchyItem
- type CallHierarchyOutgoingCall
- type CallHierarchyOutgoingCallsParams
- type CallHierarchyPrepareParams
- type Client
- func (c *Client) CallHierarchyIncoming(item CallHierarchyItem) ([]CallHierarchyIncomingCall, error)
- func (c *Client) CallHierarchyOutgoing(item CallHierarchyItem) ([]CallHierarchyOutgoingCall, error)
- func (c *Client) CallHierarchyPrepare(uri string, line, col int) ([]CallHierarchyItem, error)
- func (c *Client) DidOpen(uri, languageID, text string) error
- func (c *Client) DocumentSymbols(uri string) ([]DocumentSymbol, error)
- func (c *Client) Initialize(rootURI string) (*InitializeResult, error)
- func (c *Client) Notify(method string, params interface{}) error
- func (c *Client) References(uri string, line, col int) ([]Location, error)
- func (c *Client) Request(method string, params interface{}) (json.RawMessage, error)
- func (c *Client) SetTimeout(d time.Duration)
- func (c *Client) Shutdown() error
- type ClientCapabilities
- type Diagnostic
- type DidOpenTextDocumentParams
- type DocumentSymbol
- type DocumentSymbolCapability
- type DocumentSymbolParams
- type InitializeParams
- type InitializeResult
- type Location
- type Position
- type Range
- type ReferenceContext
- type ReferenceParams
- type ReferencesCapability
- type ServerCapabilities
- type TextDocumentClientCapabilities
- type TextDocumentIdentifier
- type TextDocumentItem
- type TextDocumentPositionParams
Constants ¶
const ( SKFunction = 12 SKMethod = 6 SKClass = 5 SKInterface = 11 SKVariable = 13 SKConstant = 14 SKConstructor = 9 )
SymbolKind constants (subset).
const ( DiagError = 1 DiagWarning = 2 DiagInfo = 3 DiagHint = 4 )
DiagnosticSeverity constants.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CallHierarchyCapability ¶
type CallHierarchyCapability struct {
DynamicRegistration bool `json:"dynamicRegistration"`
}
CallHierarchyCapability describes call hierarchy capabilities.
type CallHierarchyIncomingCall ¶
type CallHierarchyIncomingCall struct {
From CallHierarchyItem `json:"from"`
FromRanges []Range `json:"fromRanges"`
}
CallHierarchyIncomingCall represents an incoming call.
type CallHierarchyIncomingCallsParams ¶
type CallHierarchyIncomingCallsParams struct {
Item CallHierarchyItem `json:"item"`
}
CallHierarchyIncomingCallsParams is the params for callHierarchy/incomingCalls.
type CallHierarchyItem ¶
type CallHierarchyItem struct {
Name string `json:"name"`
Kind int `json:"kind"`
URI string `json:"uri"`
Range Range `json:"range"`
SelectionRange Range `json:"selectionRange"`
}
CallHierarchyItem represents a call hierarchy item.
type CallHierarchyOutgoingCall ¶
type CallHierarchyOutgoingCall struct {
To CallHierarchyItem `json:"to"`
FromRanges []Range `json:"fromRanges"`
}
CallHierarchyOutgoingCall represents an outgoing call.
type CallHierarchyOutgoingCallsParams ¶
type CallHierarchyOutgoingCallsParams struct {
Item CallHierarchyItem `json:"item"`
}
CallHierarchyOutgoingCallsParams is the params for callHierarchy/outgoingCalls.
type CallHierarchyPrepareParams ¶
type CallHierarchyPrepareParams struct {
TextDocumentPositionParams
}
CallHierarchyPrepareParams is the params for callHierarchy/prepare.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client manages a language server subprocess lifecycle.
func (*Client) CallHierarchyIncoming ¶
func (c *Client) CallHierarchyIncoming(item CallHierarchyItem) ([]CallHierarchyIncomingCall, error)
CallHierarchyIncoming returns incoming calls to a symbol.
func (*Client) CallHierarchyOutgoing ¶
func (c *Client) CallHierarchyOutgoing(item CallHierarchyItem) ([]CallHierarchyOutgoingCall, error)
CallHierarchyOutgoing returns outgoing calls from a symbol.
func (*Client) CallHierarchyPrepare ¶
func (c *Client) CallHierarchyPrepare(uri string, line, col int) ([]CallHierarchyItem, error)
CallHierarchyPrepare prepares a call hierarchy for the symbol at position.
func (*Client) DocumentSymbols ¶
func (c *Client) DocumentSymbols(uri string) ([]DocumentSymbol, error)
DocumentSymbols returns all symbols in a file.
func (*Client) Initialize ¶
func (c *Client) Initialize(rootURI string) (*InitializeResult, error)
Initialize sends the LSP initialize request with capabilities.
func (*Client) References ¶
References finds all references to a symbol at position.
func (*Client) Request ¶
func (c *Client) Request(method string, params interface{}) (json.RawMessage, error)
Request sends a JSON-RPC request and waits for the response.
func (*Client) SetTimeout ¶
SetTimeout sets the per-request timeout.
type ClientCapabilities ¶
type ClientCapabilities struct {
TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
}
ClientCapabilities describes the client's capabilities.
type Diagnostic ¶
type Diagnostic struct {
Range Range `json:"range"`
Severity int `json:"severity,omitempty"`
Code string `json:"code,omitempty"`
Source string `json:"source,omitempty"`
Message string `json:"message"`
}
Diagnostic represents a LSP diagnostic.
type DidOpenTextDocumentParams ¶
type DidOpenTextDocumentParams struct {
TextDocument TextDocumentItem `json:"textDocument"`
}
DidOpenTextDocumentParams is for textDocument/didOpen.
type DocumentSymbol ¶
type DocumentSymbol struct {
Name string `json:"name"`
Kind int `json:"kind"`
Range Range `json:"range"`
SelectionRange Range `json:"selectionRange"`
Children []DocumentSymbol `json:"children,omitempty"`
}
DocumentSymbol represents a symbol in a document.
type DocumentSymbolCapability ¶
type DocumentSymbolCapability struct {
HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport"`
}
DocumentSymbolCapability describes document symbol capabilities.
type DocumentSymbolParams ¶
type DocumentSymbolParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
DocumentSymbolParams is for textDocument/documentSymbol.
type InitializeParams ¶
type InitializeParams struct {
ProcessID int `json:"processId"`
RootURI string `json:"rootUri"`
Capabilities ClientCapabilities `json:"capabilities"`
}
InitializeParams is the LSP initialize request params.
type InitializeResult ¶
type InitializeResult struct {
Capabilities ServerCapabilities `json:"capabilities"`
}
InitializeResult is the LSP initialize response.
type ReferenceContext ¶
type ReferenceContext struct {
IncludeDeclaration bool `json:"includeDeclaration"`
}
ReferenceContext is the context for a references request.
type ReferenceParams ¶
type ReferenceParams struct {
TextDocumentPositionParams
Context ReferenceContext `json:"context"`
}
ReferenceParams extends TextDocumentPositionParams with context.
type ReferencesCapability ¶
type ReferencesCapability struct {
DynamicRegistration bool `json:"dynamicRegistration"`
}
ReferencesCapability describes references capabilities.
type ServerCapabilities ¶
type ServerCapabilities struct {
TextDocumentSync interface{} `json:"textDocumentSync,omitempty"`
DocumentSymbolProvider bool `json:"documentSymbolProvider,omitempty"`
ReferencesProvider bool `json:"referencesProvider,omitempty"`
CallHierarchyProvider bool `json:"callHierarchyProvider,omitempty"`
}
ServerCapabilities describes the server's capabilities.
type TextDocumentClientCapabilities ¶
type TextDocumentClientCapabilities struct {
DocumentSymbol *DocumentSymbolCapability `json:"documentSymbol,omitempty"`
References *ReferencesCapability `json:"references,omitempty"`
CallHierarchy *CallHierarchyCapability `json:"callHierarchy,omitempty"`
}
TextDocumentClientCapabilities describes text document capabilities.
type TextDocumentIdentifier ¶
type TextDocumentIdentifier struct {
URI string `json:"uri"`
}
TextDocumentIdentifier identifies a text document.
type TextDocumentItem ¶
type TextDocumentItem struct {
URI string `json:"uri"`
LanguageID string `json:"languageId"`
Version int `json:"version"`
Text string `json:"text"`
}
TextDocumentItem is an item for textDocument/didOpen.
type TextDocumentPositionParams ¶
type TextDocumentPositionParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
}
TextDocumentPositionParams identifies a position in a text document.