Documentation
¶
Overview ¶
Package lsp implements a Language Server Protocol server for DBML. It wraps the analysis package and exposes diagnostics, hover, completion, definition, references, document symbols, and rename over JSON-RPC.
Index ¶
- func Run(in io.Reader, out io.Writer, logger *log.Logger) error
- func RunStdio(logPath string) error
- type CompletionItem
- type CompletionList
- type CompletionOptions
- type Diagnostic
- type DidChangeParams
- type DidCloseParams
- type DidOpenParams
- type DocumentSymbol
- type DocumentSymbolParams
- type Hover
- type InitializeResult
- type LSPRange
- type Location
- type MarkupContent
- type Position
- type PrepareRenameResult
- type PublishDiagnosticsParams
- type ReferenceContext
- type ReferenceParams
- type RenameOptions
- type RenameParams
- type ServerCapabilities
- type TextDocumentContentChangeEvent
- type TextDocumentIdentifier
- type TextDocumentItem
- type TextDocumentPositionParams
- type TextEdit
- type VersionedTextDocumentIdentifier
- type WorkspaceEdit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CompletionItem ¶
type CompletionItem struct {
Label string `json:"label"`
Kind int `json:"kind,omitempty"`
Detail string `json:"detail,omitempty"`
Documentation string `json:"documentation,omitempty"`
InsertText string `json:"insertText,omitempty"`
InsertTextFormat int `json:"insertTextFormat,omitempty"`
TextEdit *TextEdit `json:"textEdit,omitempty"`
}
type CompletionList ¶
type CompletionList struct {
IsIncomplete bool `json:"isIncomplete"`
Items []CompletionItem `json:"items"`
}
type CompletionOptions ¶
type CompletionOptions struct {
TriggerCharacters []string `json:"triggerCharacters,omitempty"`
}
type Diagnostic ¶
type DidChangeParams ¶
type DidChangeParams struct {
TextDocument VersionedTextDocumentIdentifier `json:"textDocument"`
ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
}
type DidCloseParams ¶
type DidCloseParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
type DidOpenParams ¶
type DidOpenParams struct {
TextDocument TextDocumentItem `json:"textDocument"`
}
type DocumentSymbol ¶
type DocumentSymbolParams ¶
type DocumentSymbolParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
}
type Hover ¶
type Hover struct {
Contents MarkupContent `json:"contents"`
Range *LSPRange `json:"range,omitempty"`
}
type InitializeResult ¶
type InitializeResult struct {
Capabilities ServerCapabilities `json:"capabilities"`
ServerInfo struct {
Name string `json:"name"`
Version string `json:"version"`
} `json:"serverInfo"`
}
type MarkupContent ¶
type PrepareRenameResult ¶
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 {
TextDocumentPositionParams
Context ReferenceContext `json:"context"`
}
type RenameOptions ¶
type RenameOptions struct {
PrepareProvider bool `json:"prepareProvider"`
}
type RenameParams ¶
type RenameParams struct {
TextDocument TextDocumentIdentifier `json:"textDocument"`
Position Position `json:"position"`
NewName string `json:"newName"`
}
type ServerCapabilities ¶
type ServerCapabilities struct {
TextDocumentSync int `json:"textDocumentSync"`
HoverProvider bool `json:"hoverProvider"`
CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"`
DefinitionProvider bool `json:"definitionProvider"`
ReferencesProvider bool `json:"referencesProvider"`
RenameProvider *RenameOptions `json:"renameProvider,omitempty"`
DocumentSymbolProvider bool `json:"documentSymbolProvider"`
}
Server capabilities advertised in initialize.
type TextDocumentContentChangeEvent ¶
type TextDocumentContentChangeEvent struct {
Text string `json:"text"` // full-sync only (we advertise sync=Full)
}
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 WorkspaceEdit ¶
Click to show internal directories.
Click to hide internal directories.