lsp

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServerName       = "thrift-ls"
	LanguageIDThrift = "thrift"
)

Variables

View Source
var ServerVersion = "dev"

ServerVersion is the version reported by --version and the initialize handshake. It defaults to "dev" and is replaced at release build time with the git tag:

go build -ldflags "-X github.com/karitham/thrift-ls/lsp.ServerVersion=0.1.0"

Functions

func DebugHandler

func DebugHandler(handler jsonrpc2.Handler) jsonrpc2.Handler

DebugHandler wraps a jsonrpc2.Handler with request/response debug logging and panic recovery. A recovered panic becomes an error response, so the client never sees a success for a request that crashed.

func Expected added in v0.1.5

func Expected(err error) error

Expected wraps err as expected; nil stays nil.

func InitLogger added in v0.1.4

func InitLogger(level int)

InitLogger configures the process-wide slog logger with the given level (1 fatal .. 6 trace) and redirects it to a temp file so LSP traffic on stdio is never polluted. Records are also forwarded to the LSP client as window/logMessage once the handshake is done (see setLogClient).

Re-calling InitLogger re-levels the existing handler in place: the file is opened once and a client wired after the handshake keeps receiving records.

Types

type Options

type Options struct {
	Config options.Patch
	// ConfigPath pins an explicit --config file, skipping per-folder
	// discovery.
	ConfigPath string
	// CLI is the CLI-only overlay, applied on top of every view's config.
	CLI options.Patch
}

Options configures the stream server. Config is the startup configuration (defaults + config file + CLI). When ConfigPath pins an explicit file every view uses Config; otherwise each view resolves its own config from its workspace folder at creation, with CLI overlaid.

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(fs cache.FileSource, client protocol.Client, opts Options) *Server

NewServer returns a Server resolving configuration per view. The options are expected to validate; workspace settings overlay each view's config at initialize time and on didChangeConfiguration.

func (*Server) CodeAction

func (s *Server) CodeAction(ctx context.Context, params *protocol.CodeActionParams) (result []protocol.CommandOrCodeAction, err error)

func (*Server) CodeActionResolve

func (s *Server) CodeActionResolve(ctx context.Context, params *protocol.CodeAction) (*protocol.CodeAction, error)

func (*Server) CodeLens

func (s *Server) CodeLens(ctx context.Context, params *protocol.CodeLensParams) (result []protocol.CodeLens, err error)

func (*Server) CodeLensRefresh

func (s *Server) CodeLensRefresh(ctx context.Context) (err error)

func (*Server) CodeLensResolve

func (s *Server) CodeLensResolve(ctx context.Context, params *protocol.CodeLens) (result *protocol.CodeLens, err error)

func (*Server) ColorPresentation

func (s *Server) ColorPresentation(ctx context.Context, params *protocol.ColorPresentationParams) (result []protocol.ColorPresentation, err error)

func (*Server) Completion

func (s *Server) Completion(ctx context.Context, params *protocol.CompletionParams) (result protocol.CompletionResult, err error)

func (*Server) CompletionResolve

func (s *Server) CompletionResolve(ctx context.Context, params *protocol.CompletionItem) (result *protocol.CompletionItem, err error)

func (*Server) Declaration

func (s *Server) Declaration(ctx context.Context, params *protocol.DeclarationParams) (result protocol.DeclarationResult, err error)

func (*Server) Definition

func (s *Server) Definition(ctx context.Context, params *protocol.DefinitionParams) (result protocol.DefinitionResult, err error)

func (*Server) DidChange

func (s *Server) DidChange(ctx context.Context, params *protocol.DidChangeTextDocumentParams) (err error)

func (*Server) DidChangeConfiguration

func (s *Server) DidChangeConfiguration(ctx context.Context, params *protocol.DidChangeConfigurationParams) (err error)

func (*Server) DidChangeNotebookDocument

func (s *Server) DidChangeNotebookDocument(ctx context.Context, params *protocol.DidChangeNotebookDocumentParams) error

func (*Server) DidChangeWatchedFiles

func (s *Server) DidChangeWatchedFiles(ctx context.Context, params *protocol.DidChangeWatchedFilesParams) (err error)

func (*Server) DidChangeWorkspaceFolders

func (s *Server) DidChangeWorkspaceFolders(ctx context.Context, params *protocol.DidChangeWorkspaceFoldersParams) (err error)

func (*Server) DidClose

func (s *Server) DidClose(ctx context.Context, params *protocol.DidCloseTextDocumentParams) (err error)

func (*Server) DidCloseNotebookDocument

func (s *Server) DidCloseNotebookDocument(ctx context.Context, params *protocol.DidCloseNotebookDocumentParams) error

func (*Server) DidCreateFiles

func (s *Server) DidCreateFiles(ctx context.Context, params *protocol.CreateFilesParams) (err error)

func (*Server) DidDeleteFiles

func (s *Server) DidDeleteFiles(ctx context.Context, params *protocol.DeleteFilesParams) (err error)

func (*Server) DidOpen

func (s *Server) DidOpen(ctx context.Context, params *protocol.DidOpenTextDocumentParams) (err error)

func (*Server) DidOpenNotebookDocument

func (s *Server) DidOpenNotebookDocument(ctx context.Context, params *protocol.DidOpenNotebookDocumentParams) error

func (*Server) DidRenameFiles

func (s *Server) DidRenameFiles(ctx context.Context, params *protocol.RenameFilesParams) (err error)

func (*Server) DidSave

func (s *Server) DidSave(ctx context.Context, params *protocol.DidSaveTextDocumentParams) (err error)

func (*Server) DidSaveNotebookDocument

func (s *Server) DidSaveNotebookDocument(ctx context.Context, params *protocol.DidSaveNotebookDocumentParams) error

func (*Server) DocumentColor

func (s *Server) DocumentColor(ctx context.Context, params *protocol.DocumentColorParams) (result []protocol.ColorInformation, err error)

func (*Server) DocumentHighlight

func (s *Server) DocumentHighlight(ctx context.Context, params *protocol.DocumentHighlightParams) (result []protocol.DocumentHighlight, err error)
func (s *Server) DocumentLink(ctx context.Context, params *protocol.DocumentLinkParams) (result []protocol.DocumentLink, err error)

func (*Server) DocumentLinkResolve

func (s *Server) DocumentLinkResolve(ctx context.Context, params *protocol.DocumentLink) (result *protocol.DocumentLink, err error)

func (*Server) DocumentSymbol

func (s *Server) DocumentSymbol(ctx context.Context, params *protocol.DocumentSymbolParams) (result protocol.DocumentSymbolResult, err error)

func (*Server) ExecuteCommand

func (s *Server) ExecuteCommand(ctx context.Context, params *protocol.ExecuteCommandParams) (result protocol.LSPAny, err error)

func (*Server) Exit

func (s *Server) Exit(ctx context.Context) (err error)

func (*Server) FoldingRanges

func (s *Server) FoldingRanges(ctx context.Context, params *protocol.FoldingRangeParams) (result []protocol.FoldingRange, err error)

func (*Server) Formatting

func (s *Server) Formatting(ctx context.Context, params *protocol.DocumentFormattingParams) (result []protocol.TextEdit, err error)

func (*Server) Hover

func (s *Server) Hover(ctx context.Context, params *protocol.HoverParams) (result *protocol.Hover, err error)

func (*Server) Implementation

func (s *Server) Implementation(ctx context.Context, params *protocol.ImplementationParams) (result protocol.DefinitionResult, err error)

func (*Server) IncomingCalls

func (*Server) Initialize

func (s *Server) Initialize(ctx context.Context, params *protocol.InitializeParams) (result *protocol.InitializeResult, err error)

func (*Server) Initialized

func (s *Server) Initialized(ctx context.Context, params *protocol.InitializedParams) (err error)

func (*Server) InlayHint

func (s *Server) InlayHint(ctx context.Context, params *protocol.InlayHintParams) ([]protocol.InlayHint, error)

func (*Server) InlayHintResolve

func (s *Server) InlayHintResolve(ctx context.Context, params *protocol.InlayHint) (*protocol.InlayHint, error)

func (*Server) InlineCompletion

func (*Server) InlineValue

func (s *Server) InlineValue(ctx context.Context, params *protocol.InlineValueParams) ([]protocol.InlineValue, error)

func (*Server) LinkedEditingRange

func (s *Server) LinkedEditingRange(ctx context.Context, params *protocol.LinkedEditingRangeParams) (result *protocol.LinkedEditingRanges, err error)

func (*Server) LogTrace

func (s *Server) LogTrace(ctx context.Context, params *protocol.LogTraceParams) (err error)

func (*Server) Moniker

func (s *Server) Moniker(ctx context.Context, params *protocol.MonikerParams) (result []protocol.Moniker, err error)

func (*Server) OnTypeFormatting

func (s *Server) OnTypeFormatting(ctx context.Context, params *protocol.DocumentOnTypeFormattingParams) (result []protocol.TextEdit, err error)

func (*Server) OutgoingCalls

func (*Server) PrepareCallHierarchy

func (s *Server) PrepareCallHierarchy(ctx context.Context, params *protocol.CallHierarchyPrepareParams) (result []protocol.CallHierarchyItem, err error)

func (*Server) PrepareRename

func (s *Server) PrepareRename(ctx context.Context, params *protocol.PrepareRenameParams) (result protocol.PrepareRenameResult, err error)

func (*Server) PrepareTypeHierarchy

func (s *Server) PrepareTypeHierarchy(ctx context.Context, params *protocol.TypeHierarchyPrepareParams) ([]protocol.TypeHierarchyItem, error)

func (*Server) Progress

func (s *Server) Progress(ctx context.Context, params *protocol.ProgressParams) error

func (*Server) RangeFormatting

func (s *Server) RangeFormatting(ctx context.Context, params *protocol.DocumentRangeFormattingParams) (result []protocol.TextEdit, err error)

func (*Server) RangesFormatting

func (s *Server) RangesFormatting(ctx context.Context, params *protocol.DocumentRangesFormattingParams) ([]protocol.TextEdit, error)

func (*Server) References

func (s *Server) References(ctx context.Context, params *protocol.ReferenceParams) (result []protocol.Location, err error)

func (*Server) Rename

func (s *Server) Rename(ctx context.Context, params *protocol.RenameParams) (result *protocol.WorkspaceEdit, err error)

func (*Server) Request

func (s *Server) Request(ctx context.Context, method string, params any) (result any, err error)

Request handles all no standard request

func (*Server) SelectionRange

func (s *Server) SelectionRange(ctx context.Context, params *protocol.SelectionRangeParams) ([]protocol.SelectionRange, error)

func (*Server) SemanticTokensFull

func (s *Server) SemanticTokensFull(ctx context.Context, params *protocol.SemanticTokensParams) (result *protocol.SemanticTokens, err error)

func (*Server) SemanticTokensFullDelta

func (s *Server) SemanticTokensFullDelta(ctx context.Context, params *protocol.SemanticTokensDeltaParams) (result protocol.SemanticTokensDeltaResult, err error)

func (*Server) SemanticTokensRange

func (s *Server) SemanticTokensRange(ctx context.Context, params *protocol.SemanticTokensRangeParams) (result *protocol.SemanticTokens, err error)

func (*Server) SemanticTokensRefresh

func (s *Server) SemanticTokensRefresh(ctx context.Context) (err error)

func (*Server) SetTrace

func (s *Server) SetTrace(ctx context.Context, params *protocol.SetTraceParams) (err error)

func (*Server) ShowDocument

func (s *Server) ShowDocument(ctx context.Context, params *protocol.ShowDocumentParams) (result *protocol.ShowDocumentResult, err error)

func (*Server) Shutdown

func (s *Server) Shutdown(ctx context.Context) (err error)

func (*Server) SignatureHelp

func (s *Server) SignatureHelp(ctx context.Context, params *protocol.SignatureHelpParams) (result *protocol.SignatureHelp, err error)

func (*Server) Subtypes

func (*Server) Supertypes

func (*Server) Symbols

func (*Server) TypeDefinition

func (s *Server) TypeDefinition(ctx context.Context, params *protocol.TypeDefinitionParams) (result protocol.DefinitionResult, err error)

func (*Server) WillCreateFiles

func (s *Server) WillCreateFiles(ctx context.Context, params *protocol.CreateFilesParams) (result *protocol.WorkspaceEdit, err error)

func (*Server) WillDeleteFiles

func (s *Server) WillDeleteFiles(ctx context.Context, params *protocol.DeleteFilesParams) (result *protocol.WorkspaceEdit, err error)

func (*Server) WillRenameFiles

func (s *Server) WillRenameFiles(ctx context.Context, params *protocol.RenameFilesParams) (result *protocol.WorkspaceEdit, err error)

func (*Server) WillSave

func (s *Server) WillSave(ctx context.Context, params *protocol.WillSaveTextDocumentParams) (err error)

func (*Server) WillSaveWaitUntil

func (s *Server) WillSaveWaitUntil(ctx context.Context, params *protocol.WillSaveTextDocumentParams) (result []protocol.TextEdit, err error)

func (*Server) WorkDoneProgressCancel

func (s *Server) WorkDoneProgressCancel(ctx context.Context, params *protocol.WorkDoneProgressCancelParams) (err error)

func (*Server) WorkspaceSymbolResolve

func (s *Server) WorkspaceSymbolResolve(ctx context.Context, params *protocol.WorkspaceSymbol) (*protocol.WorkspaceSymbol, error)

type StreamServer

type StreamServer struct {
	// contains filtered or unexported fields
}

func NewStreamServer

func NewStreamServer(opts *Options) *StreamServer

func (*StreamServer) ServeStream

func (s *StreamServer) ServeStream(ctx context.Context, conn jsonrpc2.Conn) error

Directories

Path Synopsis
Package lsptest is an e2e harness for the thrift-ls language server.
Package lsptest is an e2e harness for the thrift-ls language server.
Package folding computes document folding ranges: braced bodies (structs, enums, services), const list and map values, annotations, and comment blocks.
Package folding computes document folding ranges: braced bodies (structs, enums, services), const list and map values, annotations, and comment blocks.

Jump to

Keyboard shortcuts

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