Documentation
¶
Overview ¶
Package lsp provides functions to convert generic interfaces to LSP-specific types.
This helps keeping individual packages independent of LSP types which effectively represent 3rd party dependency and centralizes all such conversion logic in one place.
It also enables consistency in how we convert data in both directions.
Index ¶
- Constants
- Variables
- func Command(cmd lang.Command) (lsp.Command, error)
- func DocumentChanges(events []lsp.TextDocumentContentChangeEvent) document.Changes
- func DocumentSymbols(sbs []symbols.Symbol, caps lsp.DocumentSymbolClientCapabilities) []lsp.DocumentSymbol
- func FoldingRanges(ranges []folding.Range) []lsp.FoldingRange
- func HCLDiagsToLSP(hclDiags hcl.Diagnostics, source string) []lsp.Diagnostic
- func HCLPosToLSP(pos hcl.Pos) lsp.Position
- func HCLPositionFromLspPosition(pos lsp.Position, doc *document.Document) (hcl.Pos, error)
- func HCLRangeToLSP(rng hcl.Range) lsp.Range
- func HCLSeverityToLSP(severity hcl.DiagnosticSeverity) lsp.DiagnosticSeverity
- func HandleFromDocumentURI(docUri lsp.DocumentURI) document.Handle
- func HoverData(data *lang.HoverData, cc lsp.TextDocumentClientCapabilities) *lsp.Hover
- func Links(links []lang.Link, caps *lsp.DocumentLinkClientCapabilities) []lsp.DocumentLink
- func TextEdits(tes []lang.TextEdit, snippetSupport bool) []lsp.TextEdit
- func TextEditsFromDocumentChanges(changes document.Changes) []lsp.TextEdit
- func ToCompletionList(candidates lang.Candidates, caps lsp.TextDocumentClientCapabilities) lsp.CompletionList
- func ToLocation(path lang.Path, rng hcl.Range) lsp.Location
- func ToLocationLink(path lang.Path, rng hcl.Range) lsp.LocationLink
- func ToLocationLinks(path lang.Path, rng []hcl.Range) []lsp.LocationLink
- func ToLocations(path lang.Path, rng []hcl.Range) []lsp.Location
- func ToSignatureHelp(signature *lang.FunctionSignature) *lsp.SignatureHelp
- func TokenModifiersLegend() semtok.TokenModifiers
- func TokenTypesLegend() semtok.TokenTypes
- func WorkspaceSymbols(sbs []symbols.Symbol, caps *lsp.WorkspaceSymbolClientCapabilities) []lsp.SymbolInformation
- type CodeActions
- type LanguageID
- type TokenEncoder
Constants ¶
const (
// SourceFormatAllTerraform is a Terraform specific format code action.
SourceFormatAllTerraform = "source.formatAll.terraform"
)
Variables ¶
var SupportedCodeActions = CodeActions{ SourceFormatAllTerraform: true, }
`source.formatAll`: Generic format code action. We do not register this for terraform to allow fine grained selection of actions. A user should be able to set `source.formatAll` to true, and source.formatAll.terraform to false to allow all files to be formatted, but not terraform files (or vice versa).
Functions ¶
func DocumentChanges ¶
func DocumentChanges(events []lsp.TextDocumentContentChangeEvent) document.Changes
func DocumentSymbols ¶
func DocumentSymbols(sbs []symbols.Symbol, caps lsp.DocumentSymbolClientCapabilities) []lsp.DocumentSymbol
func FoldingRanges ¶
func FoldingRanges(ranges []folding.Range) []lsp.FoldingRange
FoldingRanges converts internal folding ranges to LSP folding ranges. Input ranges use 1-based line/column (HCL convention). Output ranges use 0-based line/column (LSP convention).
func HCLDiagsToLSP ¶
func HCLDiagsToLSP(hclDiags hcl.Diagnostics, source string) []lsp.Diagnostic
func HCLSeverityToLSP ¶
func HCLSeverityToLSP(severity hcl.DiagnosticSeverity) lsp.DiagnosticSeverity
func HandleFromDocumentURI ¶
func HandleFromDocumentURI(docUri lsp.DocumentURI) document.Handle
func Links ¶
func Links(links []lang.Link, caps *lsp.DocumentLinkClientCapabilities) []lsp.DocumentLink
func ToCompletionList ¶
func ToCompletionList(candidates lang.Candidates, caps lsp.TextDocumentClientCapabilities) lsp.CompletionList
func ToLocationLink ¶
func ToLocationLinks ¶
func ToSignatureHelp ¶
func ToSignatureHelp(signature *lang.FunctionSignature) *lsp.SignatureHelp
func TokenModifiersLegend ¶
func TokenModifiersLegend() semtok.TokenModifiers
func TokenTypesLegend ¶
func TokenTypesLegend() semtok.TokenTypes
func WorkspaceSymbols ¶
func WorkspaceSymbols(sbs []symbols.Symbol, caps *lsp.WorkspaceSymbolClientCapabilities) []lsp.SymbolInformation
Types ¶
type CodeActions ¶
type CodeActions map[lsp.CodeActionKind]bool
func (CodeActions) AsSlice ¶
func (c CodeActions) AsSlice() []lsp.CodeActionKind
func (CodeActions) Only ¶
func (c CodeActions) Only(only []lsp.CodeActionKind) CodeActions
type LanguageID ¶
type LanguageID string
LanguageID represents the coding language of a file
const (
HCL LanguageID = "hcl"
)
func (LanguageID) String ¶
func (l LanguageID) String() string
type TokenEncoder ¶
type TokenEncoder struct {
// contains filtered or unexported fields
}
func NewTokenEncoder ¶
func NewTokenEncoder(tokens []semtok.SemanticToken, lines []source.Line) *TokenEncoder
func (*TokenEncoder) Encode ¶
func (te *TokenEncoder) Encode() []uint32