adapter_3_16

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package adapter_3_16 provides conversion functions between core types and protocol_3_16 types. Core types use UTF-8 byte offsets for natural Go string handling, while protocol types use UTF-16 code unit offsets as specified by the LSP specification.

LSP 3.16 Specification: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/

These adapters handle the critical conversion at API boundaries: - Convert core types (UTF-8 offsets) to protocol types (UTF-16 code units) when sending to clients - Convert protocol types (UTF-16 code units) to core types (UTF-8 offsets) when receiving from clients

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CoreToProtocolColor

func CoreToProtocolColor(c core.Color) protocol.Color

CoreToProtocolColor converts a core.Color to a protocol Color.

func CoreToProtocolColorInformation

func CoreToProtocolColorInformation(ci core.ColorInformation, content string) protocol.ColorInformation

CoreToProtocolColorInformation converts a core.ColorInformation to a protocol ColorInformation.

func CoreToProtocolColorInformationList

func CoreToProtocolColorInformationList(colors []core.ColorInformation, content string) []protocol.ColorInformation

CoreToProtocolColorInformationList converts a slice of core color information to protocol color information.

func CoreToProtocolColorPresentation

func CoreToProtocolColorPresentation(cp core.ColorPresentation, content string) protocol.ColorPresentation

CoreToProtocolColorPresentation converts a core.ColorPresentation to a protocol ColorPresentation.

func CoreToProtocolColorPresentations

func CoreToProtocolColorPresentations(presentations []core.ColorPresentation, content string) []protocol.ColorPresentation

CoreToProtocolColorPresentations converts a slice of core color presentations to protocol color presentations.

func CoreToProtocolCompletionItem

func CoreToProtocolCompletionItem(item core.CompletionItem, content string) protocol.CompletionItem

CoreToProtocolCompletionItem converts a core completion item to protocol.

func CoreToProtocolCompletionItemKind

func CoreToProtocolCompletionItemKind(kind core.CompletionItemKind) protocol.CompletionItemKind

CoreToProtocolCompletionItemKind converts a core completion item kind to protocol.

func CoreToProtocolCompletionList

func CoreToProtocolCompletionList(list *core.CompletionList, content string) *protocol.CompletionList

CoreToProtocolCompletionList converts a core completion list to protocol.

func CoreToProtocolDiagnostic

func CoreToProtocolDiagnostic(diag core.Diagnostic, content string) protocol.Diagnostic

CoreToProtocolDiagnostic converts a core.Diagnostic (UTF-8) to a protocol Diagnostic (UTF-16). The content parameter is the document content needed for UTF-8/UTF-16 conversion.

func CoreToProtocolDiagnosticSeverity

func CoreToProtocolDiagnosticSeverity(severity core.DiagnosticSeverity) protocol.DiagnosticSeverity

CoreToProtocolDiagnosticSeverity converts a core diagnostic severity to protocol severity.

func CoreToProtocolDiagnosticTag

func CoreToProtocolDiagnosticTag(tag core.DiagnosticTag) protocol.DiagnosticTag

CoreToProtocolDiagnosticTag converts a core diagnostic tag to protocol tag.

func CoreToProtocolDiagnosticWithResolver

func CoreToProtocolDiagnosticWithResolver(diag core.Diagnostic, content string, resolver ContentResolver) protocol.Diagnostic

CoreToProtocolDiagnosticWithResolver converts a core.Diagnostic (UTF-8) to a protocol Diagnostic (UTF-16). The content parameter is used for the main diagnostic range. If resolver is provided, it is used to map related information ranges in their own files.

func CoreToProtocolDiagnostics

func CoreToProtocolDiagnostics(diags []core.Diagnostic, content string) []protocol.Diagnostic

CoreToProtocolDiagnostics converts a slice of core diagnostics to protocol diagnostics. This is a convenience function for the common case of converting diagnostic arrays.

func CoreToProtocolDiagnosticsWithResolver

func CoreToProtocolDiagnosticsWithResolver(diags []core.Diagnostic, content string, resolver ContentResolver) []protocol.Diagnostic

CoreToProtocolDiagnosticsWithResolver converts a slice of core diagnostics to protocol diagnostics. The resolver is used for related information locations in other files.

func CoreToProtocolDocumentHighlight

func CoreToProtocolDocumentHighlight(highlight core.DocumentHighlight, content string) protocol.DocumentHighlight

CoreToProtocolDocumentHighlight converts a core document highlight to protocol.

func CoreToProtocolDocumentHighlightKind

func CoreToProtocolDocumentHighlightKind(kind core.DocumentHighlightKind) protocol.DocumentHighlightKind

CoreToProtocolDocumentHighlightKind converts a core highlight kind to protocol.

func CoreToProtocolDocumentHighlights

func CoreToProtocolDocumentHighlights(highlights []core.DocumentHighlight, content string) []protocol.DocumentHighlight

CoreToProtocolDocumentHighlights converts a slice of core highlights to protocol.

func CoreToProtocolDocumentSymbol

func CoreToProtocolDocumentSymbol(sym core.DocumentSymbol, content string) protocol.DocumentSymbol

CoreToProtocolDocumentSymbol converts a core.DocumentSymbol to a protocol DocumentSymbol.

func CoreToProtocolDocumentSymbols

func CoreToProtocolDocumentSymbols(symbols []core.DocumentSymbol, content string) []protocol.DocumentSymbol

CoreToProtocolDocumentSymbols converts a slice of core document symbols to protocol document symbols.

func CoreToProtocolFoldingRange

func CoreToProtocolFoldingRange(fr core.FoldingRange, content string) protocol.FoldingRange

CoreToProtocolFoldingRange converts a core.FoldingRange to a protocol FoldingRange.

func CoreToProtocolFoldingRanges

func CoreToProtocolFoldingRanges(ranges []core.FoldingRange, content string) []protocol.FoldingRange

CoreToProtocolFoldingRanges converts a slice of core folding ranges to protocol folding ranges.

func CoreToProtocolFormattingOptions

func CoreToProtocolFormattingOptions(opts core.FormattingOptions) protocol.FormattingOptions

CoreToProtocolFormattingOptions converts core formatting options to protocol formatting options. Protocol uses a map[string]any while core uses a struct for type safety.

func CoreToProtocolInlayHint

func CoreToProtocolInlayHint(hint core.InlayHint, content string) protocol.InlayHint

CoreToProtocolInlayHint converts a core inlay hint to protocol.

func CoreToProtocolInlayHintKind

func CoreToProtocolInlayHintKind(kind core.InlayHintKind) protocol.InlayHintKind

CoreToProtocolInlayHintKind converts a core inlay hint kind to protocol.

func CoreToProtocolInlayHints

func CoreToProtocolInlayHints(hints []core.InlayHint, content string) []protocol.InlayHint

CoreToProtocolInlayHints converts a slice of core inlay hints to protocol.

func CoreToProtocolInlineCompletionItem

func CoreToProtocolInlineCompletionItem(item core.InlineCompletionItem, content string) protocol.InlineCompletionItem

CoreToProtocolInlineCompletionItem converts a core inline completion item to protocol.

func CoreToProtocolInlineCompletionList

func CoreToProtocolInlineCompletionList(list *core.InlineCompletionList, content string) *protocol.InlineCompletionList

CoreToProtocolInlineCompletionList converts a core inline completion list to protocol.

func CoreToProtocolLocation

func CoreToProtocolLocation(loc core.Location, content string) protocol.Location

CoreToProtocolLocation converts a core.Location (UTF-8) to a protocol Location (UTF-16). The content parameter should be the content of the document at the location's URI.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#location

func CoreToProtocolLocationLink(link core.LocationLink, originContent, targetContent string) protocol.LocationLink

CoreToProtocolLocationLink converts a core.LocationLink (UTF-8) to a protocol LocationLink (UTF-16). The originContent parameter is the content of the origin document (if OriginSelectionRange is set). The targetContent parameter is the content of the target document.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#locationLink

func CoreToProtocolPosition

func CoreToProtocolPosition(pos core.Position, content string) protocol.Position

CoreToProtocolPosition converts a core.Position (UTF-8) to a protocol Position (UTF-16). The content parameter is needed to perform the UTF-8 to UTF-16 offset conversion.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#position Protocol requires UTF-16 code units for the character offset.

func CoreToProtocolRange

func CoreToProtocolRange(r core.Range, content string) protocol.Range

CoreToProtocolRange converts a core.Range (UTF-8) to a protocol Range (UTF-16).

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#range

func CoreToProtocolReferenceContext

func CoreToProtocolReferenceContext(ctx core.ReferenceContext) protocol.ReferenceContext

CoreToProtocolReferenceContext converts a core reference context to protocol.

func CoreToProtocolSelectionRange

func CoreToProtocolSelectionRange(sr core.SelectionRange, content string) protocol.SelectionRange

CoreToProtocolSelectionRange converts a core.SelectionRange to a protocol SelectionRange.

func CoreToProtocolSelectionRanges

func CoreToProtocolSelectionRanges(ranges []core.SelectionRange, content string) []protocol.SelectionRange

CoreToProtocolSelectionRanges converts a slice of core selection ranges to protocol selection ranges.

func CoreToProtocolSymbolKind

func CoreToProtocolSymbolKind(kind core.SymbolKind) protocol.SymbolKind

CoreToProtocolSymbolKind converts a core symbol kind to protocol symbol kind.

func CoreToProtocolTextEdit

func CoreToProtocolTextEdit(edit core.TextEdit, content string) protocol.TextEdit

CoreToProtocolTextEdit converts a core.TextEdit to a protocol TextEdit.

func CoreToProtocolTextEdits

func CoreToProtocolTextEdits(edits []core.TextEdit, content string) []protocol.TextEdit

CoreToProtocolTextEdits converts a slice of core text edits to protocol text edits.

func ProtocolToCoreColor

func ProtocolToCoreColor(c protocol.Color) core.Color

ProtocolToCoreColor converts a protocol Color to a core.Color.

func ProtocolToCoreColorInformation

func ProtocolToCoreColorInformation(ci protocol.ColorInformation, content string) core.ColorInformation

ProtocolToCoreColorInformation converts a protocol ColorInformation to a core.ColorInformation.

func ProtocolToCoreColorInformationList

func ProtocolToCoreColorInformationList(colors []protocol.ColorInformation, content string) []core.ColorInformation

ProtocolToCoreColorInformationList converts a slice of protocol color information to core color information.

func ProtocolToCoreColorPresentation

func ProtocolToCoreColorPresentation(cp protocol.ColorPresentation, content string) core.ColorPresentation

ProtocolToCoreColorPresentation converts a protocol ColorPresentation to a core.ColorPresentation.

func ProtocolToCoreColorPresentations

func ProtocolToCoreColorPresentations(presentations []protocol.ColorPresentation, content string) []core.ColorPresentation

ProtocolToCoreColorPresentations converts a slice of protocol color presentations to core color presentations.

func ProtocolToCoreCompletionItem

func ProtocolToCoreCompletionItem(item protocol.CompletionItem, content string) core.CompletionItem

ProtocolToCoreCompletionItem converts a protocol completion item to core.

func ProtocolToCoreCompletionItemKind

func ProtocolToCoreCompletionItemKind(kind protocol.CompletionItemKind) core.CompletionItemKind

ProtocolToCoreCompletionItemKind converts a protocol completion item kind to core.

func ProtocolToCoreCompletionList

func ProtocolToCoreCompletionList(list *protocol.CompletionList, content string) *core.CompletionList

ProtocolToCoreCompletionList converts a protocol completion list to core.

func ProtocolToCoreDiagnostic

func ProtocolToCoreDiagnostic(diag protocol.Diagnostic, content string) core.Diagnostic

ProtocolToCoreDiagnostic converts a protocol Diagnostic (UTF-16) to a core.Diagnostic (UTF-8). The content parameter is the document content needed for UTF-16/UTF-8 conversion.

func ProtocolToCoreDiagnosticSeverity

func ProtocolToCoreDiagnosticSeverity(severity protocol.DiagnosticSeverity) core.DiagnosticSeverity

ProtocolToCoreDiagnosticSeverity converts a protocol diagnostic severity to core severity.

func ProtocolToCoreDiagnosticTag

func ProtocolToCoreDiagnosticTag(tag protocol.DiagnosticTag) core.DiagnosticTag

ProtocolToCoreDiagnosticTag converts a protocol diagnostic tag to core tag.

func ProtocolToCoreDiagnosticWithResolver

func ProtocolToCoreDiagnosticWithResolver(diag protocol.Diagnostic, content string, resolver ContentResolver) core.Diagnostic

ProtocolToCoreDiagnosticWithResolver converts a protocol Diagnostic (UTF-16) to a core.Diagnostic (UTF-8). The content parameter is used for the main diagnostic range. If resolver is provided, it is used to map related information ranges in their own files.

func ProtocolToCoreDiagnostics

func ProtocolToCoreDiagnostics(diags []protocol.Diagnostic, content string) []core.Diagnostic

ProtocolToCoreDiagnostics converts a slice of protocol diagnostics to core diagnostics.

func ProtocolToCoreDiagnosticsWithResolver

func ProtocolToCoreDiagnosticsWithResolver(diags []protocol.Diagnostic, content string, resolver ContentResolver) []core.Diagnostic

ProtocolToCoreDiagnosticsWithResolver converts a slice of protocol diagnostics to core diagnostics. The resolver is used for related information locations in other files.

func ProtocolToCoreDocumentHighlight

func ProtocolToCoreDocumentHighlight(highlight protocol.DocumentHighlight, content string) core.DocumentHighlight

ProtocolToCoreDocumentHighlight converts a protocol document highlight to core.

func ProtocolToCoreDocumentHighlightKind

func ProtocolToCoreDocumentHighlightKind(kind protocol.DocumentHighlightKind) core.DocumentHighlightKind

ProtocolToCoreDocumentHighlightKind converts a protocol highlight kind to core.

func ProtocolToCoreDocumentHighlights

func ProtocolToCoreDocumentHighlights(highlights []protocol.DocumentHighlight, content string) []core.DocumentHighlight

ProtocolToCoreDocumentHighlights converts a slice of protocol highlights to core.

func ProtocolToCoreDocumentSymbol

func ProtocolToCoreDocumentSymbol(sym protocol.DocumentSymbol, content string) core.DocumentSymbol

ProtocolToCoreDocumentSymbol converts a protocol DocumentSymbol to a core.DocumentSymbol.

func ProtocolToCoreDocumentSymbols

func ProtocolToCoreDocumentSymbols(symbols []protocol.DocumentSymbol, content string) []core.DocumentSymbol

ProtocolToCoreDocumentSymbols converts a slice of protocol document symbols to core document symbols.

func ProtocolToCoreFoldingRange

func ProtocolToCoreFoldingRange(fr protocol.FoldingRange, content string) core.FoldingRange

ProtocolToCoreFoldingRange converts a protocol FoldingRange to a core.FoldingRange.

func ProtocolToCoreFoldingRanges

func ProtocolToCoreFoldingRanges(ranges []protocol.FoldingRange, content string) []core.FoldingRange

ProtocolToCoreFoldingRanges converts a slice of protocol folding ranges to core folding ranges.

func ProtocolToCoreFormattingOptions

func ProtocolToCoreFormattingOptions(opts protocol.FormattingOptions) core.FormattingOptions

ProtocolToCoreFormattingOptions converts protocol formatting options to core formatting options. Provides sensible defaults for missing values.

func ProtocolToCoreInlayHint

func ProtocolToCoreInlayHint(hint protocol.InlayHint, content string) core.InlayHint

ProtocolToCoreInlayHint converts a protocol inlay hint to core.

func ProtocolToCoreInlayHintKind

func ProtocolToCoreInlayHintKind(kind protocol.InlayHintKind) core.InlayHintKind

ProtocolToCoreInlayHintKind converts a protocol inlay hint kind to core.

func ProtocolToCoreInlayHints

func ProtocolToCoreInlayHints(hints []protocol.InlayHint, content string) []core.InlayHint

ProtocolToCoreInlayHints converts a slice of protocol inlay hints to core.

func ProtocolToCoreInlineCompletionItem

func ProtocolToCoreInlineCompletionItem(item protocol.InlineCompletionItem, content string) core.InlineCompletionItem

ProtocolToCoreInlineCompletionItem converts a protocol inline completion item to core.

func ProtocolToCoreInlineCompletionList

func ProtocolToCoreInlineCompletionList(list *protocol.InlineCompletionList, content string) *core.InlineCompletionList

ProtocolToCoreInlineCompletionList converts a protocol inline completion list to core.

func ProtocolToCoreLocation

func ProtocolToCoreLocation(loc protocol.Location, content string) core.Location

ProtocolToCoreLocation converts a protocol Location (UTF-16) to a core.Location (UTF-8). The content parameter should be the content of the document at the location's URI.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#location

func ProtocolToCoreLocationLink(link protocol.LocationLink, originContent, targetContent string) core.LocationLink

ProtocolToCoreLocationLink converts a protocol LocationLink (UTF-16) to a core.LocationLink (UTF-8). The originContent parameter is the content of the origin document (if OriginSelectionRange is set). The targetContent parameter is the content of the target document.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#locationLink

func ProtocolToCorePosition

func ProtocolToCorePosition(pos protocol.Position, content string) core.Position

ProtocolToCorePosition converts a protocol Position (UTF-16) to a core.Position (UTF-8). The content parameter is needed to perform the UTF-16 to UTF-8 offset conversion.

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#position Protocol provides UTF-16 code units which must be converted to UTF-8 byte offsets.

func ProtocolToCoreRange

func ProtocolToCoreRange(r protocol.Range, content string) core.Range

ProtocolToCoreRange converts a protocol Range (UTF-16) to a core.Range (UTF-8).

LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.16/specification/#range

func ProtocolToCoreReferenceContext

func ProtocolToCoreReferenceContext(ctx protocol.ReferenceContext) core.ReferenceContext

ProtocolToCoreReferenceContext converts a protocol reference context to core.

func ProtocolToCoreSelectionRange

func ProtocolToCoreSelectionRange(sr protocol.SelectionRange, content string) core.SelectionRange

ProtocolToCoreSelectionRange converts a protocol SelectionRange to a core.SelectionRange.

func ProtocolToCoreSelectionRanges

func ProtocolToCoreSelectionRanges(ranges []protocol.SelectionRange, content string) []core.SelectionRange

ProtocolToCoreSelectionRanges converts a slice of protocol selection ranges to core selection ranges.

func ProtocolToCoreSymbolKind

func ProtocolToCoreSymbolKind(kind protocol.SymbolKind) core.SymbolKind

ProtocolToCoreSymbolKind converts a protocol symbol kind to core symbol kind.

func ProtocolToCoreTextEdit

func ProtocolToCoreTextEdit(edit protocol.TextEdit, content string) core.TextEdit

ProtocolToCoreTextEdit converts a protocol TextEdit to a core.TextEdit.

func ProtocolToCoreTextEdits

func ProtocolToCoreTextEdits(edits []protocol.TextEdit, content string) []core.TextEdit

ProtocolToCoreTextEdits converts a slice of protocol text edits to core text edits.

Types

type ContentResolver

type ContentResolver func(uri string) (string, bool)

ContentResolver returns document content for a URI when converting ranges. The boolean indicates whether content was found for the URI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL