examples

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: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CLICodeLensExample

func CLICodeLensExample()

Example usage in CLI tool

func CLICompletionExample

func CLICompletionExample()

Example usage in CLI tool

func CLIDocumentLinksExample

func CLIDocumentLinksExample()

Example usage in CLI tool

func CLIHighlightExample

func CLIHighlightExample()

Example usage in CLI tool

func CLIInlayHintsExample

func CLIInlayHintsExample()

Example usage in CLI tool

func CLIRangesFormattingExample

func CLIRangesFormattingExample()

Example: Format multiple non-contiguous ranges

func CLIReferencesExample

func CLIReferencesExample()

Example usage in CLI tool

func CLIRenameExample

func CLIRenameExample()

Example usage in CLI tool

func CLISignatureHelpExample

func CLISignatureHelpExample()

Example usage in CLI tool

func CLIToolExample

func CLIToolExample()

Example: Using core types in a CLI tool (no LSP server needed)

func CLIToolWithProviders

func CLIToolWithProviders()

Example 1: Using providers in a CLI tool

func CLIWorkspaceSymbolsExample

func CLIWorkspaceSymbolsExample()

Example usage in CLI tool

func ExampleCLIUsage

func ExampleCLIUsage()

ExampleCLIUsage shows how to use the validator as a standalone CLI tool.

func RunCompleteValidatorExample

func RunCompleteValidatorExample()

RunCompleteValidatorExample demonstrates the full validator workflow.

Types

type AdvancedInlayHintResolveProvider

type AdvancedInlayHintResolveProvider struct {
}

AdvancedInlayHintResolveProvider demonstrates more sophisticated resolution

func (*AdvancedInlayHintResolveProvider) ResolveInlayHint

func (p *AdvancedInlayHintResolveProvider) ResolveInlayHint(hint core.InlayHint) core.InlayHint

type AdvancedInlineCompletionProvider

type AdvancedInlineCompletionProvider struct {
}

AdvancedInlineCompletionProvider demonstrates more sophisticated completion logic This would typically integrate with an AI model or advanced static analysis

func (*AdvancedInlineCompletionProvider) ProvideInlineCompletions

type BraceFoldingProvider

type BraceFoldingProvider struct{}

BraceFoldingProvider provides brace-based folding for any language.

func (*BraceFoldingProvider) ProvideFoldingRanges

func (p *BraceFoldingProvider) ProvideFoldingRanges(uri, content string) []core.FoldingRange

type ColorProvider

type ColorProvider struct{}

ColorProvider provides color information for various file types. It detects color values in different formats (hex, rgb, rgba) and provides multiple presentation formats.

func (*ColorProvider) ProvideColorPresentations

func (p *ColorProvider) ProvideColorPresentations(uri, content string, color core.Color, rng core.Range) []core.ColorPresentation

ProvideColorPresentations provides different ways to represent a color

func (*ColorProvider) ProvideDocumentColors

func (p *ColorProvider) ProvideDocumentColors(uri, content string) []core.ColorInformation

ProvideDocumentColors finds all color values in the document

type CompositeCodeLensProvider

type CompositeCodeLensProvider struct {
	Providers []core.CodeLensProvider
}

CompositeCodeLensProvider combines multiple code lens providers.

func NewCompositeCodeLensProvider

func NewCompositeCodeLensProvider(providers ...core.CodeLensProvider) *CompositeCodeLensProvider

func (*CompositeCodeLensProvider) ProvideCodeLenses

func (p *CompositeCodeLensProvider) ProvideCodeLenses(ctx core.CodeLensContext) []core.CodeLens

type CompositeCompletionProvider

type CompositeCompletionProvider struct {
	Providers []core.CompletionProvider
}

CompositeCompletionProvider combines multiple completion providers.

func NewCompositeCompletionProvider

func NewCompositeCompletionProvider(providers ...core.CompletionProvider) *CompositeCompletionProvider

func (*CompositeCompletionProvider) ProvideCompletions

type CompositeDocumentLinkProvider

type CompositeDocumentLinkProvider struct {
	Providers []core.DocumentLinkProvider
}

CompositeDocumentLinkProvider combines multiple link providers. This allows detecting multiple types of links in a single document.

func NewCompositeDocumentLinkProvider

func NewCompositeDocumentLinkProvider(providers ...core.DocumentLinkProvider) *CompositeDocumentLinkProvider
func (p *CompositeDocumentLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink

type CompositeFoldingProvider

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

CompositeFoldingProvider combines multiple folding providers.

func NewCompositeFoldingProvider

func NewCompositeFoldingProvider(providers ...core.FoldingRangeProvider) *CompositeFoldingProvider

func (*CompositeFoldingProvider) ProvideFoldingRanges

func (p *CompositeFoldingProvider) ProvideFoldingRanges(uri, content string) []core.FoldingRange

type CompositeInlayHintsProvider

type CompositeInlayHintsProvider struct {
	Providers []InlayHintsProvider
}

CompositeInlayHintsProvider combines multiple inlay hint providers.

func NewCompositeInlayHintsProvider

func NewCompositeInlayHintsProvider(providers ...InlayHintsProvider) *CompositeInlayHintsProvider

func (*CompositeInlayHintsProvider) ProvideInlayHints

func (p *CompositeInlayHintsProvider) ProvideInlayHints(uri, content string, rng core.Range) []core.InlayHint

type ContextAwareInlineCompletionProvider

type ContextAwareInlineCompletionProvider struct{}

ContextAwareInlineCompletionProvider uses context from selected completions

func (*ContextAwareInlineCompletionProvider) ProvideInlineCompletions

type ExampleLanguageServer

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

ExampleLanguageServer demonstrates using core types with a document manager.

func NewExampleLanguageServer

func NewExampleLanguageServer() *ExampleLanguageServer

func (*ExampleLanguageServer) TextDocumentDefinition

func (s *ExampleLanguageServer) TextDocumentDefinition(context *lsp.Context, params *protocol.DefinitionParams) (any, error)

TextDocumentDefinition handles go-to-definition requests. Shows how to work with positions using core types.

func (*ExampleLanguageServer) TextDocumentDidChange

func (s *ExampleLanguageServer) TextDocumentDidChange(context *lsp.Context, params *protocol.DidChangeTextDocumentParams) error

TextDocumentDidChange handles document change notifications. Shows how to apply edits using core types.

func (*ExampleLanguageServer) TextDocumentDidOpen

func (s *ExampleLanguageServer) TextDocumentDidOpen(context *lsp.Context, params *protocol.DidOpenTextDocumentParams) error

TextDocumentDidOpen handles document open notifications. This converts protocol types to core types at the boundary.

type FilePathLinkProvider

type FilePathLinkProvider struct {
	// WorkspaceRoot is the root directory of the workspace
	WorkspaceRoot string
}

FilePathLinkProvider finds file paths in documents. This is useful for making file references in comments or strings clickable.

func (p *FilePathLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink

type FileSystemWorkspaceSymbolProvider

type FileSystemWorkspaceSymbolProvider struct {
	WorkspaceRoot string
}

FileSystemWorkspaceSymbolProvider scans the file system on demand. This is less efficient but doesn't require maintaining a cache.

func (*FileSystemWorkspaceSymbolProvider) ProvideWorkspaceSymbols

func (p *FileSystemWorkspaceSymbolProvider) ProvideWorkspaceSymbols(query string) []core.WorkspaceSymbol

type GoFoldingProvider

type GoFoldingProvider struct{}

GoFoldingProvider provides folding ranges for Go source files.

func (*GoFoldingProvider) ProvideFoldingRanges

func (p *GoFoldingProvider) ProvideFoldingRanges(uri, content string) []core.FoldingRange

type GoFormattingProvider

type GoFormattingProvider struct{}

GoFormattingProvider formats Go source code using gofmt.

func (*GoFormattingProvider) ProvideFormatting

func (p *GoFormattingProvider) ProvideFormatting(uri, content string, options core.FormattingOptions) []core.TextEdit

type GoImportLinkProvider

type GoImportLinkProvider struct {
	// ModulePath is the base module path (e.g., "github.com/user/repo")
	ModulePath string
	// SourceRoot is the file system path to the source root
	SourceRoot string
}

GoImportLinkProvider finds Go import statements and creates file links. This makes import paths clickable in Go source files.

func (p *GoImportLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink

type GoInlayHintResolveProvider

type GoInlayHintResolveProvider struct{}

GoInlayHintResolveProvider resolves additional details for inlay hints lazily. This is useful for expensive operations like fetching documentation or type information.

func (*GoInlayHintResolveProvider) ResolveInlayHint

func (p *GoInlayHintResolveProvider) ResolveInlayHint(hint core.InlayHint) core.InlayHint

type GoParameterNameInlayHintsProvider

type GoParameterNameInlayHintsProvider struct{}

GoParameterNameInlayHintsProvider provides parameter name hints for function calls. This shows the parameter names inline with function call arguments.

func (*GoParameterNameInlayHintsProvider) ProvideInlayHints

func (p *GoParameterNameInlayHintsProvider) ProvideInlayHints(uri, content string, rng core.Range) []core.InlayHint

type GoRangeFormattingProvider

type GoRangeFormattingProvider struct{}

GoRangeFormattingProvider formats a selected range in Go code.

func (*GoRangeFormattingProvider) ProvideRangeFormatting

func (p *GoRangeFormattingProvider) ProvideRangeFormatting(
	uri, content string,
	r core.Range,
	options core.FormattingOptions,
) []core.TextEdit

type GoRangesFormattingProvider

type GoRangesFormattingProvider struct{}

GoRangesFormattingProvider formats multiple ranges in Go source code. This is useful for formatting discontinuous selections simultaneously. LSP 3.18 feature.

func (*GoRangesFormattingProvider) ProvideRangesFormatting

func (p *GoRangesFormattingProvider) ProvideRangesFormatting(uri, content string, ranges []core.Range, options core.FormattingOptions) []core.TextEdit

type GoReferencesProvider

type GoReferencesProvider struct {
	// FileProvider is a function to get content for a URI.
	FileProvider func(uri string) (string, error)
}

GoReferencesProvider finds references to Go identifiers using AST parsing. This provides more accurate results than text-based matching.

func (*GoReferencesProvider) FindReferences

func (p *GoReferencesProvider) FindReferences(uri, content string, position core.Position, context core.ReferenceContext) []core.Location

type GoRenameProvider

type GoRenameProvider struct {
	// FileProvider is a function to get content for a URI
	// In a real implementation, this would come from a document store
	FileProvider func(uri string) (string, error)
}

GoRenameProvider provides rename functionality for Go identifiers. This uses AST parsing to ensure we only rename actual identifiers.

func (*GoRenameProvider) PrepareRename

func (p *GoRenameProvider) PrepareRename(uri, content string, position core.Position) *core.Range

func (*GoRenameProvider) ProvideRename

func (p *GoRenameProvider) ProvideRename(ctx core.RenameContext) *core.WorkspaceEdit

type GoSelectionRangeProvider

type GoSelectionRangeProvider struct{}

GoSelectionRangeProvider provides selection ranges for Go source files. Selection ranges enable smart expand/shrink selection in editors.

func (*GoSelectionRangeProvider) ProvideSelectionRanges

func (p *GoSelectionRangeProvider) ProvideSelectionRanges(uri, content string, positions []core.Position) []core.SelectionRange

type GoSignatureHelpProvider

type GoSignatureHelpProvider struct{}

GoSignatureHelpProvider provides signature help for Go function calls. Shows function signatures and highlights the active parameter as you type.

func (*GoSignatureHelpProvider) ProvideSignatureHelp

func (p *GoSignatureHelpProvider) ProvideSignatureHelp(ctx core.SignatureHelpContext) *core.SignatureHelp

type GoSymbolProvider

type GoSymbolProvider struct{}

GoSymbolProvider provides document symbols for Go source files.

func (*GoSymbolProvider) ProvideDocumentSymbols

func (p *GoSymbolProvider) ProvideDocumentSymbols(uri, content string) []core.DocumentSymbol

type GoTypeInlayHintsProvider

type GoTypeInlayHintsProvider struct{}

GoTypeInlayHintsProvider provides type hints for variable declarations. This shows inferred types for variables declared with :=.

func (*GoTypeInlayHintsProvider) ProvideInlayHints

func (p *GoTypeInlayHintsProvider) ProvideInlayHints(uri, content string, rng core.Range) []core.InlayHint

type GoWorkspaceSymbolProvider

type GoWorkspaceSymbolProvider struct {
	// WorkspaceRoot is the root directory of the workspace
	WorkspaceRoot string
	// contains filtered or unexported fields
}

GoWorkspaceSymbolProvider searches for Go symbols across a workspace. This is useful for "Go to Symbol in Workspace" functionality.

func NewGoWorkspaceSymbolProvider

func NewGoWorkspaceSymbolProvider(workspaceRoot string) *GoWorkspaceSymbolProvider

func (*GoWorkspaceSymbolProvider) IndexFile

func (p *GoWorkspaceSymbolProvider) IndexFile(uri, content string)

IndexFile indexes symbols in a single Go file. This should be called when files are opened or changed.

func (*GoWorkspaceSymbolProvider) ProvideWorkspaceSymbols

func (p *GoWorkspaceSymbolProvider) ProvideWorkspaceSymbols(query string) []core.WorkspaceSymbol

ProvideWorkspaceSymbols returns symbols matching the query. The query is matched against symbol names (case-insensitive substring match).

type ImportCompletionProvider

type ImportCompletionProvider struct {
	// AvailablePackages is a list of available packages
	AvailablePackages []string
}

ImportCompletionProvider provides completions for import statements.

func NewGoImportCompletionProvider

func NewGoImportCompletionProvider() *ImportCompletionProvider

func (*ImportCompletionProvider) ProvideCompletions

type IndentFoldingProvider

type IndentFoldingProvider struct {
	TabSize int
}

IndentFoldingProvider provides indentation-based folding.

func NewIndentFoldingProvider

func NewIndentFoldingProvider() *IndentFoldingProvider

func (*IndentFoldingProvider) ProvideFoldingRanges

func (p *IndentFoldingProvider) ProvideFoldingRanges(uri, content string) []core.FoldingRange

type InlayHintsProvider

type InlayHintsProvider interface {
	ProvideInlayHints(uri, content string, rng core.Range) []core.InlayHint
}

type KeywordCompletionProvider

type KeywordCompletionProvider struct {
	// Keywords are the language keywords to complete
	Keywords []string

	// TriggerCharacters are characters that trigger completion
	TriggerCharacters []string
}

KeywordCompletionProvider provides keyword completions for a language. This is useful for simple languages or configuration files.

func NewGoKeywordCompletionProvider

func NewGoKeywordCompletionProvider() *KeywordCompletionProvider

func (*KeywordCompletionProvider) ProvideCompletions

type LazyCodeLensProvider

type LazyCodeLensProvider struct {
	// ResolveFunc is called to resolve the command for a code lens
	ResolveFunc func(lens core.CodeLens) core.CodeLens
}

LazyCodeLensProvider demonstrates lazy resolution of code lenses. The initial code lens has no command, and it's resolved later.

func (*LazyCodeLensProvider) ProvideCodeLenses

func (p *LazyCodeLensProvider) ProvideCodeLenses(ctx core.CodeLensContext) []core.CodeLens

func (*LazyCodeLensProvider) ResolveCodeLens

func (p *LazyCodeLensProvider) ResolveCodeLens(lens core.CodeLens) core.CodeLens

type LazyCompletionProvider

type LazyCompletionProvider struct {
	BaseProvider core.CompletionProvider
	ResolveFunc  func(item core.CompletionItem) core.CompletionItem
}

LazyCompletionProvider demonstrates lazy resolution of completion items. The initial items have minimal information, and details are resolved on demand.

func (*LazyCompletionProvider) ProvideCompletions

func (p *LazyCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList

func (*LazyCompletionProvider) ResolveCompletionItem

func (p *LazyCompletionProvider) ResolveCompletionItem(item core.CompletionItem) core.CompletionItem

type LineLengthCodeFixProvider

type LineLengthCodeFixProvider struct{}

LineLengthCodeFixProvider provides fixes for line length issues. Note: This is a simplified example. A real implementation would need smarter line breaking (respecting words, operators, etc.)

func (*LineLengthCodeFixProvider) ProvideCodeFixes

func (p *LineLengthCodeFixProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type LineLengthValidator

type LineLengthValidator struct {
	MaxLength int
}

LineLengthValidator checks for lines that exceed a maximum length. This is a common code style check in many projects.

func NewLineLengthValidator

func NewLineLengthValidator(maxLength int) *LineLengthValidator

func (*LineLengthValidator) ProvideDiagnostics

func (v *LineLengthValidator) ProvideDiagnostics(uri, content string) []core.Diagnostic

type MarkdownLinkProvider

type MarkdownLinkProvider struct{}

MarkdownLinkProvider finds markdown-style links [text](url). This is useful for markdown and documentation files.

func (p *MarkdownLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink

type MarkedStringHoverProvider

type MarkedStringHoverProvider struct{}

MarkedStringHoverProvider provides hover with marked strings.

func (*MarkedStringHoverProvider) ProvideHover

func (p *MarkedStringHoverProvider) ProvideHover(uri, content string, position core.Position) *core.HoverInfo

type MultiFileReferencesProvider

type MultiFileReferencesProvider struct {
	// Files maps URIs to their content.
	Files map[string]string
}

MultiFileReferencesProvider finds references across multiple files.

func (*MultiFileReferencesProvider) FindReferences

func (p *MultiFileReferencesProvider) FindReferences(uri, content string, position core.Position, context core.ReferenceContext) []core.Location

type MultiFileRenameProvider

type MultiFileRenameProvider struct {
	// Files maps URIs to their content
	Files map[string]string
}

MultiFileRenameProvider demonstrates renaming across multiple files. This is a simplified example showing the concept.

func (*MultiFileRenameProvider) PrepareRename

func (p *MultiFileRenameProvider) PrepareRename(uri, content string, position core.Position) *core.Range

func (*MultiFileRenameProvider) ProvideRename

type ProviderBasedServer

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

Example 2: Using the same providers in an LSP server

func NewProviderBasedServer

func NewProviderBasedServer() *ProviderBasedServer

func (*ProviderBasedServer) TextDocumentCodeAction

func (s *ProviderBasedServer) TextDocumentCodeAction(
	context *lsp.Context,
	params *protocol.CodeActionParams,
) ([]protocol.CodeAction, error)

TextDocumentCodeAction handler - provides code actions

func (*ProviderBasedServer) TextDocumentDidOpen

func (s *ProviderBasedServer) TextDocumentDidOpen(
	context *lsp.Context,
	params *protocol.DidOpenTextDocumentParams,
) error

TextDocumentDidOpen handler - publishes diagnostics

type QuickFixProvider

type QuickFixProvider struct{}

QuickFixProvider provides quick fixes for specific diagnostics.

func (*QuickFixProvider) ProvideCodeFixes

func (p *QuickFixProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type RefactorProvider

type RefactorProvider struct{}

RefactorProvider provides refactoring code actions.

func (*RefactorProvider) ProvideCodeFixes

func (p *RefactorProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type ReferenceCountCodeLensProvider

type ReferenceCountCodeLensProvider struct {
	// ReferenceCounter is a function that counts references to a symbol
	ReferenceCounter func(uri, symbolName string) int
}

ReferenceCountCodeLensProvider shows reference counts for symbols. This is a simplified example - a real implementation would use a symbol index.

func (*ReferenceCountCodeLensProvider) ProvideCodeLenses

func (p *ReferenceCountCodeLensProvider) ProvideCodeLenses(ctx core.CodeLensContext) []core.CodeLens

type RegionFoldingProvider

type RegionFoldingProvider struct {
	StartMarker string
	EndMarker   string
}

RegionFoldingProvider provides region-based folding.

func NewRegionFoldingProvider

func NewRegionFoldingProvider(startMarker, endMarker string) *RegionFoldingProvider

func (*RegionFoldingProvider) ProvideFoldingRanges

func (p *RegionFoldingProvider) ProvideFoldingRanges(uri, content string) []core.FoldingRange

type SimpleDefinitionProvider

type SimpleDefinitionProvider struct{}

SimpleDefinitionProvider provides go-to-definition for Go code.

func (*SimpleDefinitionProvider) ProvideDefinition

func (p *SimpleDefinitionProvider) ProvideDefinition(uri, content string, position core.Position) []core.Location

type SimpleFormattingProvider

type SimpleFormattingProvider struct {
	TabSize      int
	InsertSpaces bool
}

SimpleFormattingProvider provides basic formatting without using go/format.

func NewSimpleFormattingProvider

func NewSimpleFormattingProvider() *SimpleFormattingProvider

func (*SimpleFormattingProvider) ProvideFormatting

func (p *SimpleFormattingProvider) ProvideFormatting(uri, content string, options core.FormattingOptions) []core.TextEdit

type SimpleHighlightProvider

type SimpleHighlightProvider struct{}

SimpleHighlightProvider highlights all occurrences of a word in a document. This is a basic example that highlights based on exact word matching.

func (*SimpleHighlightProvider) ProvideDocumentHighlights

func (p *SimpleHighlightProvider) ProvideDocumentHighlights(ctx core.DocumentHighlightContext) []core.DocumentHighlight

type SimpleHoverProvider

type SimpleHoverProvider struct{}

SimpleHoverProvider provides hover information for Go code.

func (*SimpleHoverProvider) ProvideHover

func (p *SimpleHoverProvider) ProvideHover(uri, content string, position core.Position) *core.HoverInfo

type SimpleInlineCompletionProvider

type SimpleInlineCompletionProvider struct{}

SimpleInlineCompletionProvider provides basic inline completions. In a real implementation, this would typically call an AI model or use sophisticated code analysis. This example shows simple pattern-based suggestions for demonstration purposes.

func (*SimpleInlineCompletionProvider) ProvideInlineCompletions

type SimpleRangeFormattingProvider

type SimpleRangeFormattingProvider struct {
	TabSize      int
	InsertSpaces bool
}

SimpleRangeFormattingProvider provides simple range formatting.

func NewSimpleRangeFormattingProvider

func NewSimpleRangeFormattingProvider() *SimpleRangeFormattingProvider

func (*SimpleRangeFormattingProvider) ProvideRangeFormatting

func (p *SimpleRangeFormattingProvider) ProvideRangeFormatting(
	uri, content string,
	r core.Range,
	options core.FormattingOptions,
) []core.TextEdit

type SimpleRangesFormattingProvider

type SimpleRangesFormattingProvider struct {
	TabSize      int
	InsertSpaces bool
}

SimpleRangesFormattingProvider provides basic formatting for multiple ranges.

func NewSimpleRangesFormattingProvider

func NewSimpleRangesFormattingProvider() *SimpleRangesFormattingProvider

func (*SimpleRangesFormattingProvider) ProvideRangesFormatting

func (p *SimpleRangesFormattingProvider) ProvideRangesFormatting(uri, content string, ranges []core.Range, options core.FormattingOptions) []core.TextEdit

type SimpleReferencesProvider

type SimpleReferencesProvider struct {
	// FileProvider is a function to get content for a URI.
	// In a real implementation, this would come from a document store.
	FileProvider func(uri string) (string, error)
}

SimpleReferencesProvider finds all references to a symbol using text matching. This is a basic example that works for simple identifiers across files.

func (*SimpleReferencesProvider) FindReferences

func (p *SimpleReferencesProvider) FindReferences(uri, content string, position core.Position, context core.ReferenceContext) []core.Location

type SimpleRenameProvider

type SimpleRenameProvider struct{}

SimpleRenameProvider provides basic rename functionality for simple identifiers. This is useful for simple text-based renaming in configuration files or simple languages.

func (*SimpleRenameProvider) PrepareRename

func (p *SimpleRenameProvider) PrepareRename(uri, content string, position core.Position) *core.Range

func (*SimpleRenameProvider) ProvideRename

func (p *SimpleRenameProvider) ProvideRename(ctx core.RenameContext) *core.WorkspaceEdit

type SimpleWorkspaceSymbolProvider

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

SimpleWorkspaceSymbolProvider provides workspace symbols with a simple in-memory index. This is useful for small workspaces or testing.

func NewSimpleWorkspaceSymbolProvider

func NewSimpleWorkspaceSymbolProvider() *SimpleWorkspaceSymbolProvider

func (*SimpleWorkspaceSymbolProvider) AddSymbol

func (p *SimpleWorkspaceSymbolProvider) AddSymbol(symbol core.WorkspaceSymbol)

AddSymbol adds a symbol to the index.

func (*SimpleWorkspaceSymbolProvider) Clear

func (p *SimpleWorkspaceSymbolProvider) Clear()

Clear removes all symbols from the index.

func (*SimpleWorkspaceSymbolProvider) ProvideWorkspaceSymbols

func (p *SimpleWorkspaceSymbolProvider) ProvideWorkspaceSymbols(query string) []core.WorkspaceSymbol

ProvideWorkspaceSymbols returns symbols matching the query.

type Snippet

type Snippet struct {
	Prefix      string
	Label       string
	Description string
	Body        string
}

type SnippetCompletionProvider

type SnippetCompletionProvider struct {
	Snippets []Snippet
}

SnippetCompletionProvider provides snippet completions. Snippets are templates with placeholders that can be filled in.

func NewGoSnippetProvider

func NewGoSnippetProvider() *SnippetCompletionProvider

func (*SnippetCompletionProvider) ProvideCompletions

type SymbolCompletionProvider

type SymbolCompletionProvider struct{}

SymbolCompletionProvider provides completions based on symbols in scope. This uses AST parsing to find available identifiers.

func (*SymbolCompletionProvider) ProvideCompletions

type TODOCodeFixProvider

type TODOCodeFixProvider struct{}

TODOCodeFixProvider provides fixes for TODO comments.

func (*TODOCodeFixProvider) ProvideCodeFixes

func (p *TODOCodeFixProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type TODOCodeLensProvider

type TODOCodeLensProvider struct{}

TODOCodeLensProvider shows actionable items for TODO comments. This helps developers track and manage TODO items in code.

func (*TODOCodeLensProvider) ProvideCodeLenses

func (p *TODOCodeLensProvider) ProvideCodeLenses(ctx core.CodeLensContext) []core.CodeLens

type TODODiagnosticProvider

type TODODiagnosticProvider struct{}

TODODiagnosticProvider finds TODO comments and creates diagnostics.

func (*TODODiagnosticProvider) ProvideDiagnostics

func (p *TODODiagnosticProvider) ProvideDiagnostics(uri, content string) []core.Diagnostic

type TabToSpacesProvider

type TabToSpacesProvider struct{}

TabToSpacesProvider is a codefix provider that converts tabs to spaces.

func (*TabToSpacesProvider) ProvideCodeFixes

func (p *TabToSpacesProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type TestRunnerCodeLensProvider

type TestRunnerCodeLensProvider struct{}

TestRunnerCodeLensProvider provides "Run Test" code lenses for test functions. This is commonly used in test files to provide quick actions for running tests.

func (*TestRunnerCodeLensProvider) ProvideCodeLenses

func (p *TestRunnerCodeLensProvider) ProvideCodeLenses(ctx core.CodeLensContext) []core.CodeLens

type URLLinkProvider

type URLLinkProvider struct{}

URLLinkProvider finds HTTP/HTTPS URLs in documents. This is useful for making URLs in comments and strings clickable.

func (p *URLLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink

type UnusedImportProvider

type UnusedImportProvider struct{}

UnusedImportProvider provides code actions to remove unused imports. This is a simplified example - production code would use proper type checking.

func (*UnusedImportProvider) ProvideCodeFixes

func (p *UnusedImportProvider) ProvideCodeFixes(ctx core.CodeFixContext) []core.CodeAction

type VariableHighlightProvider

type VariableHighlightProvider struct{}

VariableHighlightProvider highlights variables with Read/Write distinction. This is a more advanced example that distinguishes between reads and writes.

func (*VariableHighlightProvider) ProvideDocumentHighlights

Jump to

Keyboard shortcuts

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