Documentation
¶
Index ¶
- Constants
- func DiagnosticSeverityName(severity int) string
- func FileURI(path string) string
- func FormatDiagnostics(diagnostics []Diagnostic, filePath string, workingDir string) string
- func FormatNewDiagnostics(diagnostics []Diagnostic, filePath string, workingDir string) string
- type CallHierarchyClientCapabilities
- type CallHierarchyIncomingCall
- type CallHierarchyIncomingCallsParams
- type CallHierarchyItem
- type CallHierarchyOutgoingCall
- type CallHierarchyOutgoingCallsParams
- type ClientCapabilities
- type DefinitionClientCapabilities
- type Diagnostic
- type DiagnosticClientCapabilities
- type DiagnosticTracker
- type DidChangeTextDocumentParams
- type DidOpenTextDocumentParams
- type DidSaveTextDocumentParams
- type DocumentDiagnosticParams
- type DocumentSymbol
- type DocumentSymbolClientCapabilities
- type DocumentSymbolParams
- type FullDocumentDiagnosticReport
- type HoverClientCapabilities
- type HoverContents
- type HoverResponse
- type ImplementationClientCapabilities
- type InitializeParams
- type Location
- type Manager
- func (m *Manager) Close()
- func (m *Manager) CollectAllDiagnostics(ctx context.Context) map[string][]Diagnostic
- func (m *Manager) DetectServers() []Server
- func (m *Manager) FindServer(filePath string) *Server
- func (m *Manager) GetSession(ctx context.Context, filePath string) (*Session, error)
- func (m *Manager) GetSessionByServer(ctx context.Context, server Server) (*Session, error)
- func (m *Manager) WorkingDir() string
- func (m *Manager) WorkspaceDiagnostics(ctx context.Context) (string, error)
- func (m *Manager) WorkspaceSymbols(ctx context.Context, query string) (string, error)
- type Position
- type PublishDiagnosticsParams
- type Range
- type ReferenceContext
- type ReferenceParams
- type ReferencesClientCapabilities
- type Server
- type Session
- func (s *Session) CallAndAwait(ctx context.Context, method string, params any, result any) error
- func (s *Session) CallHierarchy(ctx context.Context, uri string, line, column int, incoming bool) (string, error)
- func (s *Session) ClearPushDiagnostics(uri string)
- func (s *Session) Close()
- func (s *Session) CollectDiagnostics(ctx context.Context, uri string) []Diagnostic
- func (s *Session) Definition(ctx context.Context, uri string, line, column int) (string, error)
- func (s *Session) Diagnostics(ctx context.Context, uri string, filePath string) (string, error)
- func (s *Session) DocumentSymbols(ctx context.Context, uri string, filePath string) (string, error)
- func (s *Session) Hover(ctx context.Context, uri string, line, column int) (string, error)
- func (s *Session) Implementation(ctx context.Context, uri string, line, column int) (string, error)
- func (s *Session) IsAlive() bool
- func (s *Session) OpenDocument(ctx context.Context, filePath string) (string, error)
- func (s *Session) OpenedDocURIs() []string
- func (s *Session) PrepareCallHierarchy(ctx context.Context, uri string, line, column int) (string, error)
- func (s *Session) PushDiagnostics(uri string) []Diagnostic
- func (s *Session) References(ctx context.Context, uri string, line, column int) (string, error)
- func (s *Session) WaitForDiagnostics(ctx context.Context, uri string) []Diagnostic
- type SymbolInformation
- type TextDocumentClientCapabilities
- type TextDocumentContentChangeEvent
- type TextDocumentIdentifier
- type TextDocumentItem
- type TextDocumentPositionParams
- type TextDocumentSyncClientCapabilities
- type VersionedTextDocumentIdentifier
- type WorkspaceSymbol
- type WorkspaceSymbolParams
Constants ¶
const ( DiagnosticSeverityError = 1 DiagnosticSeverityWarning = 2 DiagnosticSeverityInformation = 3 DiagnosticSeverityHint = 4 )
Variables ¶
This section is empty.
Functions ¶
func DiagnosticSeverityName ¶
func FormatDiagnostics ¶
func FormatDiagnostics(diagnostics []Diagnostic, filePath string, workingDir string) string
func FormatNewDiagnostics ¶
func FormatNewDiagnostics(diagnostics []Diagnostic, filePath string, workingDir string) string
Types ¶
type CallHierarchyClientCapabilities ¶
type CallHierarchyClientCapabilities struct{}
type CallHierarchyIncomingCall ¶
type CallHierarchyIncomingCall struct {
From CallHierarchyItem `json:"from"`
FromRanges []Range `json:"fromRanges"`
}
type CallHierarchyIncomingCallsParams ¶
type CallHierarchyIncomingCallsParams struct {
Item CallHierarchyItem `json:"item"`
}
type CallHierarchyItem ¶
type CallHierarchyOutgoingCall ¶
type CallHierarchyOutgoingCall struct {
To CallHierarchyItem `json:"to"`
FromRanges []Range `json:"fromRanges"`
}
type CallHierarchyOutgoingCallsParams ¶
type CallHierarchyOutgoingCallsParams struct {
Item CallHierarchyItem `json:"item"`
}
type ClientCapabilities ¶
type ClientCapabilities struct {
TextDocument TextDocumentClientCapabilities `json:"textDocument"`
}
type DefinitionClientCapabilities ¶
type DefinitionClientCapabilities struct {
LinkSupport bool `json:"linkSupport,omitempty"`
}
type Diagnostic ¶
type DiagnosticClientCapabilities ¶
type DiagnosticClientCapabilities struct{}
type DiagnosticTracker ¶
type DiagnosticTracker struct {
// contains filtered or unexported fields
}
func NewDiagnosticTracker ¶
func NewDiagnosticTracker() *DiagnosticTracker
func (*DiagnosticTracker) FilterNew ¶
func (t *DiagnosticTracker) FilterNew(uri string, diags []Diagnostic) []Diagnostic
func (*DiagnosticTracker) MarkDelivered ¶
func (t *DiagnosticTracker) MarkDelivered(uri string, diags []Diagnostic)
func (*DiagnosticTracker) SetBaseline ¶
func (t *DiagnosticTracker) SetBaseline(uri string, diags []Diagnostic)
type DidChangeTextDocumentParams ¶
type DidChangeTextDocumentParams struct {
TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
}
type DidOpenTextDocumentParams ¶
type DidOpenTextDocumentParams struct {
TextDocument TextDocumentItem `json:"textDocument"`
}
type DidSaveTextDocumentParams ¶
type DidSaveTextDocumentParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
type DocumentDiagnosticParams ¶
type DocumentDiagnosticParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
type DocumentSymbol ¶
type DocumentSymbolClientCapabilities ¶
type DocumentSymbolClientCapabilities struct{}
type DocumentSymbolParams ¶
type DocumentSymbolParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
type FullDocumentDiagnosticReport ¶
type FullDocumentDiagnosticReport struct {
Kind string `json:"kind"`
Items []Diagnostic `json:"items"`
}
type HoverClientCapabilities ¶
type HoverClientCapabilities struct {
ContentFormat []string `json:"contentFormat,omitempty"`
}
type HoverContents ¶
type HoverContents struct {
Value string
}
HoverContents handles the multiple formats that LSP servers may return: MarkupContent { kind, value }, a plain string, or MarkedString { language, value }.
func (*HoverContents) UnmarshalJSON ¶
func (h *HoverContents) UnmarshalJSON(data []byte) error
type HoverResponse ¶
type HoverResponse struct {
Contents HoverContents `json:"contents"`
Range *Range `json:"range,omitempty"`
}
type ImplementationClientCapabilities ¶
type ImplementationClientCapabilities struct{}
type InitializeParams ¶
type InitializeParams struct {
ProcessID int `json:"processId"`
RootURI string `json:"rootUri"`
Capabilities ClientCapabilities `json:"capabilities"`
}
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) CollectAllDiagnostics ¶
func (m *Manager) CollectAllDiagnostics(ctx context.Context) map[string][]Diagnostic
func (*Manager) DetectServers ¶
func (*Manager) FindServer ¶
FindServer returns the most-nested project root's server that handles the given file's extension, or nil if none.
func (*Manager) GetSession ¶
func (*Manager) GetSessionByServer ¶
GetSessionByServer returns a cached session or creates a new one. If the server crashed, it restarts and re-opens previously opened documents.
func (*Manager) WorkingDir ¶
func (*Manager) WorkspaceDiagnostics ¶
type PublishDiagnosticsParams ¶
type PublishDiagnosticsParams struct {
URI string `json:"uri"`
Diagnostics []Diagnostic `json:"diagnostics"`
}
type ReferenceContext ¶
type ReferenceContext struct {
IncludeDeclaration bool `json:"includeDeclaration"`
}
type ReferenceParams ¶
type ReferenceParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
Context ReferenceContext `json:"context"`
}
type ReferencesClientCapabilities ¶
type ReferencesClientCapabilities struct{}
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) CallAndAwait ¶
CallAndAwait retries transient LSP errors (e.g. rust-analyzer's "content modified") with exponential backoff.
func (*Session) CallHierarchy ¶
func (*Session) ClearPushDiagnostics ¶
func (*Session) CollectDiagnostics ¶
func (s *Session) CollectDiagnostics(ctx context.Context, uri string) []Diagnostic
CollectDiagnostics prefers push-based diagnostics (publishDiagnostics notifications) and falls back to pull-based (textDocument/diagnostic).
func (*Session) Definition ¶
func (*Session) Diagnostics ¶
func (*Session) DocumentSymbols ¶
func (*Session) Implementation ¶
func (*Session) OpenDocument ¶
func (*Session) OpenedDocURIs ¶
func (*Session) PrepareCallHierarchy ¶ added in v0.6.9
func (*Session) PushDiagnostics ¶
func (s *Session) PushDiagnostics(uri string) []Diagnostic
func (*Session) References ¶
func (*Session) WaitForDiagnostics ¶
func (s *Session) WaitForDiagnostics(ctx context.Context, uri string) []Diagnostic
type SymbolInformation ¶
type TextDocumentClientCapabilities ¶
type TextDocumentClientCapabilities struct {
Synchronization TextDocumentSyncClientCapabilities `json:"synchronization"`
Hover HoverClientCapabilities `json:"hover"`
Definition DefinitionClientCapabilities `json:"definition"`
References ReferencesClientCapabilities `json:"references"`
Implementation ImplementationClientCapabilities `json:"implementation"`
DocumentSymbol DocumentSymbolClientCapabilities `json:"documentSymbol"`
Diagnostic DiagnosticClientCapabilities `json:"diagnostic"`
CallHierarchy CallHierarchyClientCapabilities `json:"callHierarchy"`
}
type TextDocumentContentChangeEvent ¶
type TextDocumentContentChangeEvent struct {
Text string `json:"text"`
}
type TextDocumentIdentifier ¶
type TextDocumentIdentifier struct {
URI string `json:"uri"`
}
type TextDocumentItem ¶
type TextDocumentPositionParams ¶
type TextDocumentPositionParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
}
type TextDocumentSyncClientCapabilities ¶
type TextDocumentSyncClientCapabilities struct {
DidSave bool `json:"didSave,omitempty"`
}
type WorkspaceSymbol ¶
type WorkspaceSymbol struct {
Name string `json:"name"`
Kind int `json:"kind"`
Location struct {
URI string `json:"uri"`
Range *Range `json:"range,omitempty"`
} `json:"location"`
}
WorkspaceSymbol is the newer response type for workspace/symbol (since 3.17). Unlike SymbolInformation, its location range may be omitted.
type WorkspaceSymbolParams ¶
type WorkspaceSymbolParams struct {
Query string `json:"query"`
}