Documentation
¶
Index ¶
- func CLICodeLensExample()
- func CLICompletionExample()
- func CLIDocumentLinksExample()
- func CLIHighlightExample()
- func CLIInlayHintsExample()
- func CLIRangesFormattingExample()
- func CLIReferencesExample()
- func CLIRenameExample()
- func CLISignatureHelpExample()
- func CLIToolExample()
- func CLIToolWithProviders()
- func CLIWorkspaceSymbolsExample()
- func ExampleCLIUsage()
- func RunCompleteValidatorExample()
- type AdvancedInlayHintResolveProvider
- type AdvancedInlineCompletionProvider
- type BraceFoldingProvider
- type ColorProvider
- type CompositeCodeLensProvider
- type CompositeCompletionProvider
- type CompositeDocumentLinkProvider
- type CompositeFoldingProvider
- type CompositeInlayHintsProvider
- type ContextAwareInlineCompletionProvider
- type ExampleLanguageServer
- func (s *ExampleLanguageServer) TextDocumentDefinition(context *lsp.Context, params *protocol.DefinitionParams) (any, error)
- func (s *ExampleLanguageServer) TextDocumentDidChange(context *lsp.Context, params *protocol.DidChangeTextDocumentParams) error
- func (s *ExampleLanguageServer) TextDocumentDidOpen(context *lsp.Context, params *protocol.DidOpenTextDocumentParams) error
- type FilePathLinkProvider
- type FileSystemWorkspaceSymbolProvider
- type GoFoldingProvider
- type GoFormattingProvider
- type GoImportLinkProvider
- type GoInlayHintResolveProvider
- type GoParameterNameInlayHintsProvider
- type GoRangeFormattingProvider
- type GoRangesFormattingProvider
- type GoReferencesProvider
- type GoRenameProvider
- type GoSelectionRangeProvider
- type GoSignatureHelpProvider
- type GoSymbolProvider
- type GoTypeInlayHintsProvider
- type GoWorkspaceSymbolProvider
- type ImportCompletionProvider
- type IndentFoldingProvider
- type InlayHintsProvider
- type KeywordCompletionProvider
- type LazyCodeLensProvider
- type LazyCompletionProvider
- type LineLengthCodeFixProvider
- type LineLengthValidator
- type MarkdownLinkProvider
- type MarkedStringHoverProvider
- type MultiFileReferencesProvider
- type MultiFileRenameProvider
- type ProviderBasedServer
- type QuickFixProvider
- type RefactorProvider
- type ReferenceCountCodeLensProvider
- type RegionFoldingProvider
- type SimpleDefinitionProvider
- type SimpleFormattingProvider
- type SimpleHighlightProvider
- type SimpleHoverProvider
- type SimpleInlineCompletionProvider
- type SimpleRangeFormattingProvider
- type SimpleRangesFormattingProvider
- type SimpleReferencesProvider
- type SimpleRenameProvider
- type SimpleWorkspaceSymbolProvider
- type Snippet
- type SnippetCompletionProvider
- type SymbolCompletionProvider
- type TODOCodeFixProvider
- type TODOCodeLensProvider
- type TODODiagnosticProvider
- type TabToSpacesProvider
- type TestRunnerCodeLensProvider
- type URLLinkProvider
- type UnusedImportProvider
- type VariableHighlightProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CLIRangesFormattingExample ¶
func CLIRangesFormattingExample()
Example: Format multiple non-contiguous ranges
func CLIToolExample ¶
func CLIToolExample()
Example: Using core types in a CLI tool (no LSP server needed)
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 ¶
func (p *AdvancedInlineCompletionProvider) ProvideInlineCompletions(ctx core.InlineCompletionContext) *core.InlineCompletionList
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 ¶
func (p *CompositeCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList
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 (*CompositeDocumentLinkProvider) ProvideDocumentLinks ¶
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 ¶
type ContextAwareInlineCompletionProvider ¶
type ContextAwareInlineCompletionProvider struct{}
ContextAwareInlineCompletionProvider uses context from selected completions
func (*ContextAwareInlineCompletionProvider) ProvideInlineCompletions ¶
func (p *ContextAwareInlineCompletionProvider) ProvideInlineCompletions(ctx core.InlineCompletionContext) *core.InlineCompletionList
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 (*FilePathLinkProvider) ProvideDocumentLinks ¶
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 (*GoImportLinkProvider) ProvideDocumentLinks ¶
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 ¶
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 (*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 ¶
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 ¶
func (p *ImportCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList
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 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 ¶
func (p *KeywordCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList
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 (*MarkdownLinkProvider) ProvideDocumentLinks ¶
func (p *MarkdownLinkProvider) ProvideDocumentLinks(uri, content string) []core.DocumentLink
type MarkedStringHoverProvider ¶
type MarkedStringHoverProvider struct{}
MarkedStringHoverProvider provides hover with marked strings.
func (*MarkedStringHoverProvider) ProvideHover ¶
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 ¶
MultiFileRenameProvider demonstrates renaming across multiple files. This is a simplified example showing the concept.
func (*MultiFileRenameProvider) PrepareRename ¶
func (*MultiFileRenameProvider) ProvideRename ¶
func (p *MultiFileRenameProvider) ProvideRename(ctx core.RenameContext) *core.WorkspaceEdit
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 ¶
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 ¶
type SimpleFormattingProvider ¶
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 ¶
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 ¶
func (p *SimpleInlineCompletionProvider) ProvideInlineCompletions(ctx core.InlineCompletionContext) *core.InlineCompletionList
type SimpleRangeFormattingProvider ¶
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 ¶
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 (*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 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 ¶
func (p *SnippetCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList
type SymbolCompletionProvider ¶
type SymbolCompletionProvider struct{}
SymbolCompletionProvider provides completions based on symbols in scope. This uses AST parsing to find available identifiers.
func (*SymbolCompletionProvider) ProvideCompletions ¶
func (p *SymbolCompletionProvider) ProvideCompletions(ctx core.CompletionContext) *core.CompletionList
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 (*URLLinkProvider) ProvideDocumentLinks ¶
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 ¶
func (p *VariableHighlightProvider) ProvideDocumentHighlights(ctx core.DocumentHighlightContext) []core.DocumentHighlight
Source Files
¶
- code_actions_example.go
- code_lens_example.go
- codefix_provider_example.go
- color_example.go
- complete_validator_example.go
- completion_example.go
- core_handler_example.go
- document_links_example.go
- folding_example.go
- formatting_example.go
- highlight_example.go
- inlay_hints_example.go
- inline_completion_example.go
- navigation_example.go
- ranges_formatting_example.go
- references_example.go
- rename_example.go
- selection_range_example.go
- signature_help_example.go
- symbols_example.go
- workspace_symbols_example.go