Documentation
¶
Index ¶
- type Client
- func (c *Client) GetCompletion(ctx context.Context, params CompletionParams) ([]CompletionItem, error)
- func (c *Client) GetDefinition(ctx context.Context, params DefinitionParams) ([]Location, error)
- func (c *Client) GetHover(ctx context.Context, params HoverParams) (*Hover, error)
- func (c *Client) GetReferences(ctx context.Context, params ReferencesParams) ([]Location, error)
- func (c *Client) GetStatus() ConnectionStatus
- func (c *Client) Initialize(ctx context.Context, workspace string) error
- func (c *Client) IsConnected() bool
- func (c *Client) Shutdown(ctx context.Context) error
- type CompletionContext
- type CompletionItem
- type CompletionItemKind
- type CompletionParams
- type Config
- type ConnectionStatus
- type DefinitionParams
- type DocumentSymbol
- type DocumentSymbolParams
- type Hover
- type HoverParams
- type Location
- type MarkupContent
- type Position
- type Range
- type ReferencesContext
- type ReferencesParams
- type SymbolKind
- type TextDocumentIdentifier
- type TextEdit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents an LSP client
func NewClient ¶
func NewClient() *Client
NewClient creates a new LSP client with default configuration
func NewClientWithConfig ¶
NewClientWithConfig creates a new LSP client with custom configuration
func (*Client) GetCompletion ¶
func (c *Client) GetCompletion(ctx context.Context, params CompletionParams) ([]CompletionItem, error)
GetCompletion requests completion items at a given position
func (*Client) GetDefinition ¶
GetDefinition requests definition locations for a symbol at a given position
func (*Client) GetReferences ¶
GetReferences requests reference locations for a symbol at a given position
func (*Client) GetStatus ¶
func (c *Client) GetStatus() ConnectionStatus
GetStatus returns the current connection status
func (*Client) Initialize ¶
Initialize initializes the LSP client with a workspace
func (*Client) IsConnected ¶
IsConnected returns whether the client is connected
type CompletionContext ¶
type CompletionContext struct {
TriggerKind int `json:"triggerKind"`
TriggerCharacter string `json:"triggerCharacter,omitempty"`
}
CompletionContext represents completion context
type CompletionItem ¶
type CompletionItem struct {
Label string `json:"label"`
Kind CompletionItemKind `json:"kind"`
Detail string `json:"detail,omitempty"`
Documentation string `json:"documentation,omitempty"`
Deprecated bool `json:"deprecated,omitempty"`
Preselect bool `json:"preselect,omitempty"`
SortText string `json:"sortText,omitempty"`
FilterText string `json:"filterText,omitempty"`
InsertText string `json:"insertText,omitempty"`
InsertTextFormat int `json:"insertTextFormat,omitempty"`
AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"`
}
CompletionItem represents a completion item
type CompletionItemKind ¶
type CompletionItemKind int
CompletionItemKind represents the kind of a completion item
const ( CompletionItemKindText CompletionItemKind = 1 CompletionItemKindMethod CompletionItemKind = 2 CompletionItemKindFunction CompletionItemKind = 3 CompletionItemKindConstructor CompletionItemKind = 4 CompletionItemKindField CompletionItemKind = 5 CompletionItemKindVariable CompletionItemKind = 6 CompletionItemKindClass CompletionItemKind = 7 CompletionItemKindInterface CompletionItemKind = 8 CompletionItemKindModule CompletionItemKind = 9 CompletionItemKindProperty CompletionItemKind = 10 CompletionItemKindUnit CompletionItemKind = 11 CompletionItemKindValue CompletionItemKind = 12 CompletionItemKindEnum CompletionItemKind = 13 CompletionItemKindKeyword CompletionItemKind = 14 CompletionItemKindSnippet CompletionItemKind = 15 CompletionItemKindColor CompletionItemKind = 16 CompletionItemKindFile CompletionItemKind = 17 CompletionItemKindReference CompletionItemKind = 18 CompletionItemKindFolder CompletionItemKind = 19 CompletionItemKindEnumMember CompletionItemKind = 20 CompletionItemKindConstant CompletionItemKind = 21 CompletionItemKindStruct CompletionItemKind = 22 CompletionItemKindEvent CompletionItemKind = 23 CompletionItemKindOperator CompletionItemKind = 24 CompletionItemKindTypeParameter CompletionItemKind = 25 )
type CompletionParams ¶
type CompletionParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
Context *CompletionContext `json:"context,omitempty"`
}
CompletionParams represents parameters for a completion request
type Config ¶
type Config struct {
CompletionDebounce time.Duration
RequestTimeout time.Duration
EnableCache bool
CacheSize int
MaxConcurrentReqs int
}
Config holds LSP client configuration
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns default LSP client configuration
type ConnectionStatus ¶
type ConnectionStatus int
ConnectionStatus represents LSP connection status
const ( StatusDisconnected ConnectionStatus = iota StatusConnecting StatusConnected StatusError )
func (ConnectionStatus) String ¶
func (s ConnectionStatus) String() string
type DefinitionParams ¶
type DefinitionParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
}
DefinitionParams represents parameters for a definition request
type DocumentSymbol ¶
type DocumentSymbol struct {
Name string `json:"name"`
Detail string `json:"detail,omitempty"`
Kind SymbolKind `json:"kind"`
Deprecated bool `json:"deprecated,omitempty"`
Range Range `json:"range"`
SelectionRange Range `json:"selectionRange"`
Children []DocumentSymbol `json:"children,omitempty"`
}
DocumentSymbol represents a symbol in a document
type DocumentSymbolParams ¶
type DocumentSymbolParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
DocumentSymbolParams represents parameters for a document symbols request
type Hover ¶
type Hover struct {
Contents MarkupContent `json:"contents"`
Range *Range `json:"range,omitempty"`
}
Hover represents hover information
type HoverParams ¶
type HoverParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
}
HoverParams represents parameters for a hover request
type MarkupContent ¶
type MarkupContent struct {
Kind string `json:"kind"` // "plaintext" or "markdown"
Value string `json:"value"`
}
MarkupContent represents formatted content
type ReferencesContext ¶
type ReferencesContext struct {
IncludeDeclaration bool `json:"includeDeclaration"`
}
ReferencesContext represents references context
type ReferencesParams ¶
type ReferencesParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
Context ReferencesContext `json:"context"`
}
ReferencesParams represents parameters for a references request
type SymbolKind ¶
type SymbolKind int
SymbolKind represents the kind of a symbol
const ( SymbolKindFile SymbolKind = 1 SymbolKindModule SymbolKind = 2 SymbolKindNamespace SymbolKind = 3 SymbolKindPackage SymbolKind = 4 SymbolKindClass SymbolKind = 5 SymbolKindMethod SymbolKind = 6 SymbolKindProperty SymbolKind = 7 SymbolKindField SymbolKind = 8 SymbolKindConstructor SymbolKind = 9 SymbolKindEnum SymbolKind = 10 SymbolKindInterface SymbolKind = 11 SymbolKindFunction SymbolKind = 12 SymbolKindVariable SymbolKind = 13 SymbolKindConstant SymbolKind = 14 SymbolKindString SymbolKind = 15 SymbolKindNumber SymbolKind = 16 SymbolKindBoolean SymbolKind = 17 SymbolKindArray SymbolKind = 18 SymbolKindObject SymbolKind = 19 SymbolKindKey SymbolKind = 20 SymbolKindNull SymbolKind = 21 SymbolKindEnumMember SymbolKind = 22 SymbolKindStruct SymbolKind = 23 SymbolKindEvent SymbolKind = 24 SymbolKindOperator SymbolKind = 25 SymbolKindTypeParameter SymbolKind = 26 )
type TextDocumentIdentifier ¶
type TextDocumentIdentifier struct {
URI string `json:"uri"`
}
TextDocumentIdentifier identifies a text document