base

package
v0.0.0-...-6320ad3 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// list the different symbol kinds
	SymbolKindFile          = 1
	SymbolKindModule        = 2
	SymbolKindNamespace     = 3
	SymbolKindPackage       = 4
	SymbolKindClass         = 5
	SymbolKindMethod        = 6
	SymbolKindProperty      = 7
	SymbolKindField         = 8
	SymbolKindConstructor   = 9
	SymbolKindEnum          = 10
	SymbolKindInterface     = 11
	SymbolKindFunction      = 12
	SymbolKindVariable      = 13
	SymbolKindConstant      = 14
	SymbolKindString        = 15
	SymbolKindNumber        = 16
	SymbolKindBoolean       = 17
	SymbolKindArray         = 18
	SymbolKindObject        = 19
	SymbolKindKey           = 20
	SymbolKindNull          = 21
	SymbolKindEnumMember    = 22
	SymbolKindStruct        = 23
	SymbolKindEvent         = 24
	SymbolKindOperator      = 25
	SymbolKindTypeParameter = 26
)

Variables

This section is empty.

Functions

func ExtractJavaMethodName

func ExtractJavaMethodName(fullSignature string) string

ExtractJavaMethodName extracts just the method name from a Java LSP signature. Java LSP (Eclipse JDT.LS) returns method names in formats like:

  • "findByOwnerId(Long) : List<PetDto>" -> "findByOwnerId"
  • "countByType(String) : long" -> "countByType"
  • "toString()" -> "toString"
  • "simpleMethod" -> "simpleMethod" (no change if no signature)
  • "Optional<User> methodName(Long)" -> "methodName" (return type prefix)

func LastSegment

func LastSegment(name string) string

func LocationToKey

func LocationToKey(loc *Location) string

func MapToDocumentSymbolOrSymbolInformation

func MapToDocumentSymbolOrSymbolInformation(data map[string]interface{}) (interface{}, error)

func MatchExact

func MatchExact(name, nameInFile string) bool

func MatchIgnoreCase

func MatchIgnoreCase(name, nameInFile string) bool

func MatchIgnoreCaseLastSegment

func MatchIgnoreCaseLastSegment(name, nameInFile string, delim string) bool

func MatchLastSegment

func MatchLastSegment(name, nameInFile string, delim string) bool

func RangeInRange

func RangeInRange(outer, inner Range) bool

Types

type CallHierarchyClientCapabilities

type CallHierarchyClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
	IncomingCalls       bool `json:"incomingCalls"`
	OutgoingCalls       bool `json:"outgoingCalls"`
}

type CallHierarchyIncomingCall

type CallHierarchyIncomingCall struct {
	From       CallHierarchyItem `json:"from"`
	FromRanges []Range           `json:"fromRanges"`
}

func MapToCallHierarchyIncomingCall

func MapToCallHierarchyIncomingCall(data map[string]interface{}) (*CallHierarchyIncomingCall, error)

type CallHierarchyIncomingCallsParams

type CallHierarchyIncomingCallsParams struct {
	Item CallHierarchyItem `json:"item"`
}

type CallHierarchyIncomingOrgoingCalls

type CallHierarchyIncomingOrgoingCalls struct {
	IncomingCalls []CallHierarchyIncomingCall `json:"incomingCalls,omitempty"`
	OutgoingCalls []CallHierarchyOutgoingCall `json:"outgoingCalls,omitempty"`
}

type CallHierarchyItem

type CallHierarchyItem struct {
	Name           string `json:"name"`
	Kind           int    `json:"kind"`
	URI            string `json:"uri"`
	Range          Range  `json:"range"`
	SelectionRange Range  `json:"selectionRange"`
}

func MapToCallHierarchyItem

func MapToCallHierarchyItem(data map[string]interface{}) (*CallHierarchyItem, error)

type CallHierarchyOutgoingCall

type CallHierarchyOutgoingCall struct {
	To         CallHierarchyItem `json:"to"`
	FromRanges []Range           `json:"FromRanges"`
}

func MapToCallHierarchyOutgoingCall

func MapToCallHierarchyOutgoingCall(data map[string]interface{}) (*CallHierarchyOutgoingCall, error)

type CallHierarchyParams

type CallHierarchyParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	Position     Position               `json:"position"`
}

type ClientCapabilities

type ClientCapabilities struct {
	TextDocument TextDocumentClientCapabilities `json:"textDocument"`
	Workspace    WorkspaceClientCapabilities    `json:"workspace"`
}

type DefinitionClientCapabilities

type DefinitionClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
	LinkSupport         bool `json:"linkSupport"`
}

type DefinitionParams

type DefinitionParams struct {
	TextDocumentPositionParams
}

type DidChangeConfigurationClientCapabilities

type DidChangeConfigurationClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type DidChangeWatchedFilesClientCapabilities

type DidChangeWatchedFilesClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type DidOpenTextDocumentParams

type DidOpenTextDocumentParams struct {
	TextDocument TextDocumentItem `json:"textDocument"`
}

type DocumentSymbol

type DocumentSymbol struct {
	Name           string           `json:"name"`
	Detail         string           `json:"detail,omitempty"`
	Kind           int              `json:"kind"`
	Range          Range            `json:"range"`
	SelectionRange Range            `json:"selectionRange"`
	Children       []DocumentSymbol `json:"children,omitempty"`
}

func MapToDocumentSymbol

func MapToDocumentSymbol(data map[string]interface{}) (*DocumentSymbol, error)

type DocumentSymbolClientCapabilities

type DocumentSymbolClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type DocumentSymbolParams

type DocumentSymbolParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
}

type FileHolder

type FileHolder struct {
	FileURI string
	// contains filtered or unexported fields
}

func NewFileHolder

func NewFileHolder(uri string, content string) *FileHolder

func (*FileHolder) FindNameInLine

func (fh *FileHolder) FindNameInLine(lspClient LSPClient, name string, line int) int

func (*FileHolder) FindNameInNextLines

func (fh *FileHolder) FindNameInNextLines(lspClient LSPClient, name string, startLine, n int) (int, int)

FindNameInNextLines searches for a name in the next n lines starting from startLine. Returns (line, character) where the name was found, or (-1, -1) if not found.

func (*FileHolder) GetLine

func (fh *FileHolder) GetLine(line int) string

type Hover

type Hover struct {
	Contents interface{} `json:"contents"`
	Range    *Range      `json:"range,omitempty"`
}

type HoverClientCapabilities

type HoverClientCapabilities struct {
	DynamicRegistration bool     `json:"dynamicRegistration"`
	ContentFormat       []string `json:"contentFormat,omitempty"`
}

type HoverParams

type HoverParams struct {
	TextDocumentPositionParams
}

type InitializeParams

type InitializeParams struct {
	ProcessID    *int               `json:"processId"`
	RootPath     *string            `json:"rootPath,omitempty"`
	RootURI      *string            `json:"rootUri,omitempty"`
	Capabilities ClientCapabilities `json:"capabilities"`
}

type InitializeResult

type InitializeResult struct {
	Capabilities ServerCapabilities `json:"capabilities"`
	ServerInfo   *ServerInfo        `json:"serverInfo,omitempty"`
}

func MapToInitializeResult

func MapToInitializeResult(data map[string]interface{}) (*InitializeResult, error)

type JSONRPCMessage

type JSONRPCMessage struct {
	JSONRPC string      `json:"jsonrpc"`
	ID      *int        `json:"id,omitempty"`
	Method  string      `json:"method"`
	Params  interface{} `json:"params,omitempty"`
	Result  interface{} `json:"result,omitempty"`
	Error   *RPCError   `json:"error,omitempty"`
}

type LSPClient

type LSPClient interface {
	GetRootPath() string
	LanguageID(uri string) string
	IsExternalModule(uri string) bool

	MatchSymbolByName(name, nameInFile string) bool
	SymbolPartToMatch(name string) string

	Initialize(ctx context.Context) (*InitializeResult, error)
	Shutdown(ctx context.Context) error
	Close() error

	DidOpenFile(ctx context.Context, uri string) error
	GetDocumentSymbols(ctx context.Context, uri string) ([]interface{}, error)
	GetCallHierarchy(ctx context.Context, uri string, fnName string, position Position, inbound bool) (*CallHierarchyIncomingOrgoingCalls, error)
	GetHover(ctx context.Context, uri string, position Position) (*Hover, error)
}

type Location

type Location struct {
	URI   string `json:"uri"`
	Range Range  `json:"range"`
}

type MarkupContent

type MarkupContent struct {
	Kind  string `json:"kind"`
	Value string `json:"value"`
}

type Position

type Position struct {
	Line      int `json:"line"`
	Character int `json:"character"`
}

type RPCError

type RPCError struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

type Range

type Range struct {
	Start Position `json:"start"`
	End   Position `json:"end"`
}

func (*Range) Contains

func (r *Range) Contains(pos Position) bool

func (*Range) ContainsRange

func (r *Range) ContainsRange(other *Range) bool

type ReferenceClientCapabilities

type ReferenceClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type ReferenceContext

type ReferenceContext struct {
	IncludeDeclaration bool `json:"includeDeclaration"`
}

type ReferenceParams

type ReferenceParams struct {
	TextDocumentPositionParams
	Context ReferenceContext `json:"context"`
}

type ServerCapabilities

type ServerCapabilities struct {
	Capabilities map[string]interface{} `json:"capabilities"`
	// TextDocumentSync        TextDocumentSyncOptions `json:"textDocumentSync,omitempty"`
	TextDocumentSync        interface{} `json:"textDocumentSync,omitempty"`
	CompletionProvider      interface{} `json:"completionProvider,omitempty"`
	HoverProvider           bool        `json:"hoverProvider,omitempty"`
	SignatureHelpProvider   interface{} `json:"signatureHelpProvider,omitempty"`
	DefinitionProvider      bool        `json:"definitionProvider,omitempty"`
	ReferencesProvider      bool        `json:"referencesProvider,omitempty"`
	DocumentSymbolProvider  bool        `json:"documentSymbolProvider,omitempty"`
	WorkspaceSymbolProvider bool        `json:"workspaceSymbolProvider,omitempty"`
	CallHierarchyProvider   bool        `json:"callHierarchyProvider,omitempty"`
	ExecuteCommandProvider  interface{} `json:"executeCommandProvider,omitempty"`
	Workspace               interface{} `json:"workspace,omitempty"`
}

type ServerInfo

type ServerInfo struct {
	Name    string `json:"name"`
	Version string `json:"version"`
}

type SignatureHelpClientCapabilities

type SignatureHelpClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type SignatureHelpParams

type SignatureHelpParams struct {
	TextDocumentPositionParams
}

type SymbolInformation

type SymbolInformation struct {
	Name     string   `json:"name"`
	Kind     int      `json:"kind"`
	Location Location `json:"location"`
}

func MapToSymbolInformation

func MapToSymbolInformation(data map[string]interface{}) (*SymbolInformation, error)

type TextDocumentClientCapabilities

type TextDocumentClientCapabilities struct {
	DocumentSymbol DocumentSymbolClientCapabilities `json:"documentSymbol"`
	Hover          HoverClientCapabilities          `json:"hover"`
	SignatureHelp  SignatureHelpClientCapabilities  `json:"signatureHelp"`
	Definition     DefinitionClientCapabilities     `json:"definition"`
	References     ReferenceClientCapabilities      `json:"references"`
	CallHierarchy  CallHierarchyClientCapabilities  `json:"callHierarchy"`
}

type TextDocumentIdentifier

type TextDocumentIdentifier struct {
	URI string `json:"uri"`
}

type TextDocumentItem

type TextDocumentItem struct {
	URI        string `json:"uri"`
	LanguageId string `json:"languageId"`
	Version    int    `json:"version"`
	Text       string `json:"text"`
}

type TextDocumentPositionParams

type TextDocumentPositionParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	Position     Position               `json:"position"`
}

type WorkspaceClientCapabilities

type WorkspaceClientCapabilities struct {
	ApplyEdit              bool                                     `json:"applyEdit"`
	WorkspaceEdit          WorkspaceEditClientCapabilities          `json:"workspaceEdit"`
	DidChangeConfiguration DidChangeConfigurationClientCapabilities `json:"didChangeConfiguration"`
	DidChangeWatchedFiles  DidChangeWatchedFilesClientCapabilities  `json:"didChangeWatchedFiles"`
	Symbol                 WorkspaceSymbolClientCapabilities        `json:"symbol"`
	Configuration          bool                                     `json:"configuration"`
}

type WorkspaceEditClientCapabilities

type WorkspaceEditClientCapabilities struct {
	DocumentChanges    bool     `json:"documentChanges"`
	ResourceOperations []string `json:"resourceOperations"`
}

type WorkspaceSymbolClientCapabilities

type WorkspaceSymbolClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration"`
}

type WorkspaceSymbolParams

type WorkspaceSymbolParams struct {
	Query string `json:"query"`
}

Jump to

Keyboard shortcuts

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