lsp

package
v1.22.2 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package lsp implements the Language Server Protocol for Buffalo.

Index

Constants

View Source
const (
	DiagCodeMissingSyntax        = "BUF001"
	DiagCodeInvalidSyntax        = "BUF002"
	DiagCodeMissingPackage       = "BUF003"
	DiagCodeMismatchedBraces     = "BUF004"
	DiagCodeInvalidFieldNumber   = "BUF005"
	DiagCodeReservedFieldNumber  = "BUF006"
	DiagCodeDuplicateFieldNumber = "BUF007"
	DiagCodeDuplicateFieldName   = "BUF008"
	DiagCodeNamingConvention     = "BUF009"
	DiagCodeMissingSemicolon     = "BUF010"
	DiagCodeInvalidType          = "BUF011"
	DiagCodeInvalidImport        = "BUF012"
	DiagCodeDuplicateImport      = "BUF013"
	DiagCodeInvalidOption        = "BUF014"
	DiagCodeInvalidRPC           = "BUF015"
	DiagCodeInvalidEnum          = "BUF016"
	DiagCodeInvalidMapKey        = "BUF017"
	DiagCodeUnterminatedString   = "BUF018"
	DiagCodeInvalidSyntaxGeneral = "BUF019"
	DiagCodeEmptyMessage         = "BUF020"
	DiagCodeTopLevelStatement    = "BUF021"
	DiagCodeDuplicatePackage     = "BUF022"
	DiagCodeDuplicateSyntax      = "BUF023"
	DiagCodeInvalidEnumDefault   = "BUF024"
	DiagCodeReservedKeyword      = "BUF025"
)

DiagnosticCode constants for categorized diagnostics.

View Source
const (
	ParseError           = -32700
	InvalidRequest       = -32600
	MethodNotFound       = -32601
	InvalidParams        = -32602
	InternalError        = -32603
	ServerNotInitialized = -32002
	UnknownErrorCode     = -32001
	RequestCancelled     = -32800
	ContentModified      = -32801
)

Error codes defined by LSP.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientCapabilities

type ClientCapabilities struct {
	Workspace    *WorkspaceClientCapabilities    `json:"workspace,omitempty"`
	TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitempty"`
	Window       *WindowClientCapabilities       `json:"window,omitempty"`
	General      *GeneralClientCapabilities      `json:"general,omitempty"`
	Experimental interface{}                     `json:"experimental,omitempty"`
}

ClientCapabilities describes client capabilities.

type ClientInfo

type ClientInfo struct {
	Name    string `json:"name"`
	Version string `json:"version,omitempty"`
}

ClientInfo describes the client.

type CodeAction

type CodeAction struct {
	Title       string         `json:"title"`
	Kind        CodeActionKind `json:"kind,omitempty"`
	Diagnostics []Diagnostic   `json:"diagnostics,omitempty"`
	IsPreferred bool           `json:"isPreferred,omitempty"`
	Disabled    *struct {
		Reason string `json:"reason"`
	} `json:"disabled,omitempty"`
	Edit    *WorkspaceEdit `json:"edit,omitempty"`
	Command *Command       `json:"command,omitempty"`
	Data    interface{}    `json:"data,omitempty"`
}

CodeAction represents a change that can be performed in code.

type CodeActionClientCapabilities

type CodeActionClientCapabilities struct {
	DynamicRegistration      bool `json:"dynamicRegistration,omitempty"`
	CodeActionLiteralSupport *struct {
		CodeActionKind struct {
			ValueSet []CodeActionKind `json:"valueSet"`
		} `json:"codeActionKind"`
	} `json:"codeActionLiteralSupport,omitempty"`
	IsPreferredSupport bool `json:"isPreferredSupport,omitempty"`
	DisabledSupport    bool `json:"disabledSupport,omitempty"`
	DataSupport        bool `json:"dataSupport,omitempty"`
	ResolveSupport     *struct {
		Properties []string `json:"properties"`
	} `json:"resolveSupport,omitempty"`
	HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"`
}

CodeActionClientCapabilities describes code action capabilities.

type CodeActionContext

type CodeActionContext struct {
	Diagnostics []Diagnostic     `json:"diagnostics"`
	Only        []CodeActionKind `json:"only,omitempty"`
}

CodeActionContext contains additional diagnostic information.

type CodeActionKind

type CodeActionKind string

CodeActionKind defines the kind of a code action.

const (
	CodeActionKindEmpty                 CodeActionKind = ""
	CodeActionKindQuickFix              CodeActionKind = "quickfix"
	CodeActionKindRefactor              CodeActionKind = "refactor"
	CodeActionKindRefactorExtract       CodeActionKind = "refactor.extract"
	CodeActionKindRefactorInline        CodeActionKind = "refactor.inline"
	CodeActionKindRefactorRewrite       CodeActionKind = "refactor.rewrite"
	CodeActionKindSource                CodeActionKind = "source"
	CodeActionKindSourceOrganizeImports CodeActionKind = "source.organizeImports"
	CodeActionKindSourceFixAll          CodeActionKind = "source.fixAll"
)

type CodeActionOptions

type CodeActionOptions struct {
	CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"`
	ResolveProvider bool             `json:"resolveProvider,omitempty"`
}

CodeActionOptions describes code action options.

type CodeActionParams

type CodeActionParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	Range        Range                  `json:"range"`
	Context      CodeActionContext      `json:"context"`
}

CodeActionParams for textDocument/codeAction.

type CodeDescription

type CodeDescription struct {
	Href string `json:"href"`
}

CodeDescription for diagnostic links.

type CodeLensClientCapabilities

type CodeLensClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

CodeLensClientCapabilities describes code lens capabilities.

type CodeLensOptions

type CodeLensOptions struct {
	ResolveProvider bool `json:"resolveProvider,omitempty"`
}

CodeLensOptions describes code lens options.

type Command

type Command struct {
	Title     string        `json:"title"`
	Command   string        `json:"command"`
	Arguments []interface{} `json:"arguments,omitempty"`
}

Command represents a reference to a command.

type CompletionClientCapabilities

type CompletionClientCapabilities struct {
	DynamicRegistration bool                          `json:"dynamicRegistration,omitempty"`
	CompletionItem      *CompletionItemCapabilities   `json:"completionItem,omitempty"`
	CompletionItemKind  *CompletionItemKindCapability `json:"completionItemKind,omitempty"`
	ContextSupport      bool                          `json:"contextSupport,omitempty"`
}

CompletionClientCapabilities describes completion capabilities.

type CompletionContext

type CompletionContext struct {
	TriggerKind      CompletionTriggerKind `json:"triggerKind"`
	TriggerCharacter string                `json:"triggerCharacter,omitempty"`
}

CompletionContext contains additional completion information.

type CompletionItem

type CompletionItem struct {
	Label               string              `json:"label"`
	Kind                CompletionItemKind  `json:"kind,omitempty"`
	Tags                []CompletionItemTag `json:"tags,omitempty"`
	Detail              string              `json:"detail,omitempty"`
	Documentation       interface{}         `json:"documentation,omitempty"`
	Deprecated          bool                `json:"deprecated,omitempty"`
	Preselect           bool                `json:"preselect,omitempty"`
	SortText            string              `json:"sortText,omitempty"`
	FilterText          string              `json:"filterText,omitempty"`
	InsertText          string              `json:"insertText,omitempty"`
	InsertTextFormat    InsertTextFormat    `json:"insertTextFormat,omitempty"`
	InsertTextMode      InsertTextMode      `json:"insertTextMode,omitempty"`
	TextEdit            *TextEdit           `json:"textEdit,omitempty"`
	AdditionalTextEdits []TextEdit          `json:"additionalTextEdits,omitempty"`
	CommitCharacters    []string            `json:"commitCharacters,omitempty"`
	Command             *Command            `json:"command,omitempty"`
	Data                interface{}         `json:"data,omitempty"`
}

CompletionItem represents a completion item.

type CompletionItemCapabilities

type CompletionItemCapabilities struct {
	SnippetSupport          bool     `json:"snippetSupport,omitempty"`
	CommitCharactersSupport bool     `json:"commitCharactersSupport,omitempty"`
	DocumentationFormat     []string `json:"documentationFormat,omitempty"`
	DeprecatedSupport       bool     `json:"deprecatedSupport,omitempty"`
	PreselectSupport        bool     `json:"preselectSupport,omitempty"`
	TagSupport              *struct {
		ValueSet []CompletionItemTag `json:"valueSet"`
	} `json:"tagSupport,omitempty"`
	InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"`
	ResolveSupport       *struct {
		Properties []string `json:"properties"`
	} `json:"resolveSupport,omitempty"`
	InsertTextModeSupport *struct {
		ValueSet []InsertTextMode `json:"valueSet"`
	} `json:"insertTextModeSupport,omitempty"`
}

CompletionItemCapabilities describes completion item capabilities.

type CompletionItemKind

type CompletionItemKind int

CompletionItemKind represents the kind of a completion entry.

const (
	CompletionItemKindText          CompletionItemKind = 1
	CompletionItemKindMethod        CompletionItemKind = 2
	CompletionItemKindFunction      CompletionItemKind = 3
	CompletionItemKindConstructor   CompletionItemKind = 4
	CompletionItemKindField         CompletionItemKind = 5
	CompletionItemKindVariable      CompletionItemKind = 6
	CompletionItemKindClass         CompletionItemKind = 7
	CompletionItemKindInterface     CompletionItemKind = 8
	CompletionItemKindModule        CompletionItemKind = 9
	CompletionItemKindProperty      CompletionItemKind = 10
	CompletionItemKindUnit          CompletionItemKind = 11
	CompletionItemKindValue         CompletionItemKind = 12
	CompletionItemKindEnum          CompletionItemKind = 13
	CompletionItemKindKeyword       CompletionItemKind = 14
	CompletionItemKindSnippet       CompletionItemKind = 15
	CompletionItemKindColor         CompletionItemKind = 16
	CompletionItemKindFile          CompletionItemKind = 17
	CompletionItemKindReference     CompletionItemKind = 18
	CompletionItemKindFolder        CompletionItemKind = 19
	CompletionItemKindEnumMember    CompletionItemKind = 20
	CompletionItemKindConstant      CompletionItemKind = 21
	CompletionItemKindStruct        CompletionItemKind = 22
	CompletionItemKindEvent         CompletionItemKind = 23
	CompletionItemKindOperator      CompletionItemKind = 24
	CompletionItemKindTypeParameter CompletionItemKind = 25
)

type CompletionItemKindCapability

type CompletionItemKindCapability struct {
	ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
}

CompletionItemKindCapability describes completion item kind capability.

type CompletionItemTag

type CompletionItemTag int

CompletionItemTag for extra completion info.

const (
	CompletionItemTagDeprecated CompletionItemTag = 1
)

type CompletionList

type CompletionList struct {
	IsIncomplete bool             `json:"isIncomplete"`
	Items        []CompletionItem `json:"items"`
}

CompletionList represents a list of completion items.

type CompletionOptions

type CompletionOptions struct {
	TriggerCharacters   []string `json:"triggerCharacters,omitempty"`
	AllCommitCharacters []string `json:"allCommitCharacters,omitempty"`
	ResolveProvider     bool     `json:"resolveProvider,omitempty"`
}

CompletionOptions describes completion provider options.

type CompletionParams

type CompletionParams struct {
	TextDocumentPositionParams
	Context *CompletionContext `json:"context,omitempty"`
}

CompletionParams for textDocument/completion.

type CompletionTriggerKind

type CompletionTriggerKind int

CompletionTriggerKind describes how a completion was triggered.

const (
	CompletionTriggerKindInvoked                         CompletionTriggerKind = 1
	CompletionTriggerKindTriggerCharacter                CompletionTriggerKind = 2
	CompletionTriggerKindTriggerForIncompleteCompletions CompletionTriggerKind = 3
)

type DeclarationClientCapabilities

type DeclarationClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	LinkSupport         bool `json:"linkSupport,omitempty"`
}

DeclarationClientCapabilities describes declaration capabilities.

type DefinitionClientCapabilities

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

DefinitionClientCapabilities describes definition capabilities.

type Diagnostic

type Diagnostic struct {
	Range              Range                          `json:"range"`
	Severity           DiagnosticSeverity             `json:"severity,omitempty"`
	Code               interface{}                    `json:"code,omitempty"`
	CodeDescription    *CodeDescription               `json:"codeDescription,omitempty"`
	Source             string                         `json:"source,omitempty"`
	Message            string                         `json:"message"`
	Tags               []DiagnosticTag                `json:"tags,omitempty"`
	RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
}

Diagnostic represents a diagnostic message.

type DiagnosticRelatedInformation

type DiagnosticRelatedInformation struct {
	Location Location `json:"location"`
	Message  string   `json:"message"`
}

DiagnosticRelatedInformation provides related diagnostic info.

type DiagnosticSeverity

type DiagnosticSeverity int

DiagnosticSeverity represents diagnostic severity.

const (
	SeverityError       DiagnosticSeverity = 1
	SeverityWarning     DiagnosticSeverity = 2
	SeverityInformation DiagnosticSeverity = 3
	SeverityHint        DiagnosticSeverity = 4
)

type DiagnosticTag

type DiagnosticTag int

DiagnosticTag for extra diagnostic info.

const (
	DiagnosticTagUnnecessary DiagnosticTag = 1
	DiagnosticTagDeprecated  DiagnosticTag = 2
)

type DidChangeConfigurationCapability

type DidChangeConfigurationCapability struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DidChangeConfigurationCapability describes didChangeConfiguration capability.

type DidChangeConfigurationParams

type DidChangeConfigurationParams struct {
	Settings interface{} `json:"settings"`
}

DidChangeConfigurationParams for workspace/didChangeConfiguration.

type DidChangeTextDocumentParams

type DidChangeTextDocumentParams struct {
	TextDocument   VersionedTextDocumentIdentifier  `json:"textDocument"`
	ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"`
}

DidChangeTextDocumentParams for textDocument/didChange.

type DidChangeWatchedFilesCapability

type DidChangeWatchedFilesCapability struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DidChangeWatchedFilesCapability describes didChangeWatchedFiles capability.

type DidChangeWatchedFilesParams

type DidChangeWatchedFilesParams struct {
	Changes []FileEvent `json:"changes"`
}

DidChangeWatchedFilesParams for workspace/didChangeWatchedFiles.

type DidCloseTextDocumentParams

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

DidCloseTextDocumentParams for textDocument/didClose.

type DidOpenTextDocumentParams

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

DidOpenTextDocumentParams for textDocument/didOpen.

type DidSaveTextDocumentParams

type DidSaveTextDocumentParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	Text         *string                `json:"text,omitempty"`
}

DidSaveTextDocumentParams for textDocument/didSave.

type Document

type Document struct {
	URI        DocumentURI
	LanguageID string
	Version    int
	Content    string
	Lines      []string
}

Document represents an open document.

func NewDocument

func NewDocument(uri DocumentURI, content string) *Document

NewDocument creates a new document with the given URI and content.

type DocumentColorClientCapabilities

type DocumentColorClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DocumentColorClientCapabilities describes document color capabilities.

type DocumentFormattingClientCapabilities

type DocumentFormattingClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DocumentFormattingClientCapabilities describes document formatting capabilities.

type DocumentFormattingParams

type DocumentFormattingParams struct {
	TextDocument TextDocumentIdentifier `json:"textDocument"`
	Options      FormattingOptions      `json:"options"`
}

DocumentFormattingParams for textDocument/formatting.

type DocumentHighlight

type DocumentHighlight struct {
	Range Range                 `json:"range"`
	Kind  DocumentHighlightKind `json:"kind,omitempty"`
}

DocumentHighlight represents a document highlight.

type DocumentHighlightClientCapabilities

type DocumentHighlightClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DocumentHighlightClientCapabilities describes document highlight capabilities.

type DocumentHighlightKind

type DocumentHighlightKind int

DocumentHighlightKind represents document highlight kind.

const (
	DocumentHighlightKindText  DocumentHighlightKind = 1
	DocumentHighlightKindRead  DocumentHighlightKind = 2
	DocumentHighlightKindWrite DocumentHighlightKind = 3
)

type DocumentLinkClientCapabilities

type DocumentLinkClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	TooltipSupport      bool `json:"tooltipSupport,omitempty"`
}

DocumentLinkClientCapabilities describes document link capabilities.

type DocumentLinkOptions

type DocumentLinkOptions struct {
	ResolveProvider bool `json:"resolveProvider,omitempty"`
}

DocumentLinkOptions describes document link options.

type DocumentOnTypeFormattingCapabilities

type DocumentOnTypeFormattingCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DocumentOnTypeFormattingCapabilities describes on type formatting capabilities.

type DocumentOnTypeFormattingOptions

type DocumentOnTypeFormattingOptions struct {
	FirstTriggerCharacter string   `json:"firstTriggerCharacter"`
	MoreTriggerCharacter  []string `json:"moreTriggerCharacter,omitempty"`
}

DocumentOnTypeFormattingOptions describes on type formatting options.

type DocumentRangeFormattingCapabilities

type DocumentRangeFormattingCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

DocumentRangeFormattingCapabilities describes range formatting capabilities.

type DocumentSymbol

type DocumentSymbol struct {
	Name           string           `json:"name"`
	Detail         string           `json:"detail,omitempty"`
	Kind           SymbolKind       `json:"kind"`
	Tags           []SymbolTag      `json:"tags,omitempty"`
	Deprecated     bool             `json:"deprecated,omitempty"`
	Range          Range            `json:"range"`
	SelectionRange Range            `json:"selectionRange"`
	Children       []DocumentSymbol `json:"children,omitempty"`
}

DocumentSymbol represents programming constructs.

type DocumentSymbolClientCapabilities

type DocumentSymbolClientCapabilities struct {
	DynamicRegistration               bool                  `json:"dynamicRegistration,omitempty"`
	SymbolKind                        *SymbolKindCapability `json:"symbolKind,omitempty"`
	HierarchicalDocumentSymbolSupport bool                  `json:"hierarchicalDocumentSymbolSupport,omitempty"`
	TagSupport                        *SymbolTagCapability  `json:"tagSupport,omitempty"`
	LabelSupport                      bool                  `json:"labelSupport,omitempty"`
}

DocumentSymbolClientCapabilities describes document symbol capabilities.

type DocumentSymbolParams

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

DocumentSymbolParams for textDocument/documentSymbol.

type DocumentURI

type DocumentURI string

DocumentURI is a document URI.

type ExecuteCommandCapability

type ExecuteCommandCapability struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

ExecuteCommandCapability describes execute command capability.

type ExecuteCommandOptions

type ExecuteCommandOptions struct {
	Commands []string `json:"commands,omitempty"`
}

ExecuteCommandOptions describes execute command options.

type FileChangeType

type FileChangeType int

FileChangeType describes the type of a file change.

const (
	FileChangeTypeCreated FileChangeType = 1
	FileChangeTypeChanged FileChangeType = 2
	FileChangeTypeDeleted FileChangeType = 3
)

type FileEvent

type FileEvent struct {
	URI  DocumentURI    `json:"uri"`
	Type FileChangeType `json:"type"`
}

FileEvent describes a file change event.

type FileOperationFilter

type FileOperationFilter struct {
	Scheme  string               `json:"scheme,omitempty"`
	Pattern FileOperationPattern `json:"pattern"`
}

FileOperationFilter describes a file operation filter.

type FileOperationOptions

type FileOperationOptions struct {
	DidCreate  *FileOperationRegistrationOptions `json:"didCreate,omitempty"`
	WillCreate *FileOperationRegistrationOptions `json:"willCreate,omitempty"`
	DidRename  *FileOperationRegistrationOptions `json:"didRename,omitempty"`
	WillRename *FileOperationRegistrationOptions `json:"willRename,omitempty"`
	DidDelete  *FileOperationRegistrationOptions `json:"didDelete,omitempty"`
	WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitempty"`
}

FileOperationOptions describes file operation options.

type FileOperationPattern

type FileOperationPattern struct {
	Glob    string `json:"glob"`
	Matches string `json:"matches,omitempty"`
	Options *struct {
		IgnoreCase bool `json:"ignoreCase,omitempty"`
	} `json:"options,omitempty"`
}

FileOperationPattern describes a file operation pattern.

type FileOperationRegistrationOptions

type FileOperationRegistrationOptions struct {
	Filters []FileOperationFilter `json:"filters"`
}

FileOperationRegistrationOptions describes file operation registration.

type FoldingRange

type FoldingRange struct {
	StartLine      int    `json:"startLine"`
	StartCharacter *int   `json:"startCharacter,omitempty"`
	EndLine        int    `json:"endLine"`
	EndCharacter   *int   `json:"endCharacter,omitempty"`
	Kind           string `json:"kind,omitempty"`
}

FoldingRange represents a folding range.

type FoldingRangeClientCapabilities

type FoldingRangeClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	RangeLimit          int  `json:"rangeLimit,omitempty"`
	LineFoldingOnly     bool `json:"lineFoldingOnly,omitempty"`
}

FoldingRangeClientCapabilities describes folding range capabilities.

type FoldingRangeParams

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

FoldingRangeParams for textDocument/foldingRange.

type FormattingOptions

type FormattingOptions struct {
	TabSize                int  `json:"tabSize"`
	InsertSpaces           bool `json:"insertSpaces"`
	TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"`
	InsertFinalNewline     bool `json:"insertFinalNewline,omitempty"`
	TrimFinalNewlines      bool `json:"trimFinalNewlines,omitempty"`
}

FormattingOptions describes formatting options.

type GeneralClientCapabilities

type GeneralClientCapabilities struct {
	StaleRequestSupport *struct {
		Cancel                 bool     `json:"cancel"`
		RetryOnContentModified []string `json:"retryOnContentModified"`
	} `json:"staleRequestSupport,omitempty"`
	RegularExpressions *struct {
		Engine  string `json:"engine"`
		Version string `json:"version,omitempty"`
	} `json:"regularExpressions,omitempty"`
	Markdown *struct {
		Parser      string   `json:"parser"`
		Version     string   `json:"version,omitempty"`
		AllowedTags []string `json:"allowedTags,omitempty"`
	} `json:"markdown,omitempty"`
}

GeneralClientCapabilities describes general capabilities.

type Handler

type Handler func(ctx context.Context, params json.RawMessage) (interface{}, error)

Handler is a function that handles an LSP request.

type Hover

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

Hover represents hover information.

type HoverClientCapabilities

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

HoverClientCapabilities describes hover capabilities.

type ImplementationClientCapabilities

type ImplementationClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	LinkSupport         bool `json:"linkSupport,omitempty"`
}

ImplementationClientCapabilities describes implementation capabilities.

type InitializeParams

type InitializeParams struct {
	ProcessID             *int               `json:"processId"`
	ClientInfo            *ClientInfo        `json:"clientInfo,omitempty"`
	Locale                string             `json:"locale,omitempty"`
	RootPath              *string            `json:"rootPath,omitempty"`
	RootURI               DocumentURI        `json:"rootUri"`
	InitializationOptions interface{}        `json:"initializationOptions,omitempty"`
	Capabilities          ClientCapabilities `json:"capabilities"`
	Trace                 string             `json:"trace,omitempty"`
	WorkspaceFolders      []WorkspaceFolder  `json:"workspaceFolders,omitempty"`
}

InitializeParams for initialize request.

type InitializeResult

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

InitializeResult is the result of the initialize request.

type InsertTextFormat

type InsertTextFormat int

InsertTextFormat defines insertion format.

const (
	InsertTextFormatPlainText InsertTextFormat = 1
	InsertTextFormatSnippet   InsertTextFormat = 2
)

type InsertTextMode

type InsertTextMode int

InsertTextMode defines insertion mode.

const (
	InsertTextModeAsIs              InsertTextMode = 1
	InsertTextModeAdjustIndentation InsertTextMode = 2
)

type Location

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

Location represents a location inside a resource.

type MarkupContent

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

MarkupContent represents a string value as markup content.

type MarkupKind

type MarkupKind string

MarkupKind describes the markup format.

const (
	MarkupKindPlainText MarkupKind = "plaintext"
	MarkupKindMarkdown  MarkupKind = "markdown"
)

type Message

type Message interface {
	// contains filtered or unexported methods
}

Message is the base interface for all LSP messages.

type NotificationMessage

type NotificationMessage struct {
	JSONRPC string          `json:"jsonrpc"`
	Method  string          `json:"method"`
	Params  json.RawMessage `json:"params,omitempty"`
}

NotificationMessage represents an LSP notification.

type ParameterInformation

type ParameterInformation struct {
	Label         interface{} `json:"label"`
	Documentation interface{} `json:"documentation,omitempty"`
}

ParameterInformation represents a parameter of a callable-signature.

type PermissionAnnotationInfo

type PermissionAnnotationInfo struct {
	Name        string
	Description string
	Example     string
}

PermissionAnnotationInfo describes a Buffalo permission annotation.

type Position

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

Position in a text document.

type PrepareRenameParams

type PrepareRenameParams struct {
	TextDocumentPositionParams
}

PrepareRenameParams for textDocument/prepareRename.

type PrepareRenameResult

type PrepareRenameResult struct {
	Range       Range  `json:"range"`
	Placeholder string `json:"placeholder"`
}

PrepareRenameResult is the result of prepareRename.

type ProtoAnalyzer

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

ProtoAnalyzer provides proto file analysis for LSP.

func NewProtoAnalyzer

func NewProtoAnalyzer(log *logger.Logger) *ProtoAnalyzer

NewProtoAnalyzer creates a new proto analyzer.

func (*ProtoAnalyzer) Analyze

func (a *ProtoAnalyzer) Analyze(doc *Document) []Diagnostic

Analyze analyzes a document and returns diagnostics.

func (*ProtoAnalyzer) CodeActions

func (a *ProtoAnalyzer) CodeActions(doc *Document, rng Range, ctx CodeActionContext) []CodeAction

CodeActions returns available code actions.

func (*ProtoAnalyzer) Complete

func (a *ProtoAnalyzer) Complete(doc *Document, pos Position, ctx *CompletionContext) []CompletionItem

Complete returns completion items for a position.

func (*ProtoAnalyzer) Definition

func (a *ProtoAnalyzer) Definition(doc *Document, pos Position) *Location

Definition returns the definition location for a position.

func (*ProtoAnalyzer) DocumentSymbols

func (a *ProtoAnalyzer) DocumentSymbols(doc *Document) []DocumentSymbol

DocumentSymbols returns document symbols.

func (*ProtoAnalyzer) FoldingRanges

func (a *ProtoAnalyzer) FoldingRanges(doc *Document) []FoldingRange

FoldingRanges returns folding ranges.

func (*ProtoAnalyzer) Format

func (a *ProtoAnalyzer) Format(doc *Document, opts FormattingOptions) []TextEdit

Format formats a document.

func (*ProtoAnalyzer) GetEmbeddedProto

func (a *ProtoAnalyzer) GetEmbeddedProto(importPath string) (string, bool)

GetEmbeddedProto returns content of an embedded proto file.

func (*ProtoAnalyzer) Hover

func (a *ProtoAnalyzer) Hover(doc *Document, pos Position) *Hover

Hover returns hover information for a position.

func (*ProtoAnalyzer) ListEmbeddedProtos

func (a *ProtoAnalyzer) ListEmbeddedProtos() []string

ListEmbeddedProtos returns all embedded proto file paths.

func (*ProtoAnalyzer) PrepareRename

func (a *ProtoAnalyzer) PrepareRename(doc *Document, pos Position) *PrepareRenameResult

PrepareRename checks if rename is possible.

func (*ProtoAnalyzer) References

func (a *ProtoAnalyzer) References(doc *Document, pos Position, docs []*Document, includeDeclaration bool) []Location

References returns all references to a symbol.

func (*ProtoAnalyzer) Rename

func (a *ProtoAnalyzer) Rename(doc *Document, pos Position, newName string, docs []*Document) *WorkspaceEdit

Rename renames a symbol.

func (*ProtoAnalyzer) ResolveCompletion

func (a *ProtoAnalyzer) ResolveCompletion(item CompletionItem) CompletionItem

ResolveCompletion adds documentation to a completion item.

func (*ProtoAnalyzer) SemanticTokens

func (a *ProtoAnalyzer) SemanticTokens(doc *Document) *SemanticTokens

SemanticTokens returns semantic tokens.

func (*ProtoAnalyzer) SyntaxDiagnostics added in v1.11.1

func (a *ProtoAnalyzer) SyntaxDiagnostics(doc *Document) []Diagnostic

SyntaxDiagnostics performs deep syntax analysis on a proto document. This complements the existing Analyze method with more detailed syntax checks.

type ProtoSymbol

type ProtoSymbol struct {
	Name          string
	Kind          SymbolKind
	Range         Range
	Children      []ProtoSymbol
	Type          string // For fields: the field type
	Documentation string
}

ProtoSymbol represents a symbol in a proto file.

type PublishDiagnosticsClientCapabilities

type PublishDiagnosticsClientCapabilities struct {
	RelatedInformation bool `json:"relatedInformation,omitempty"`
	TagSupport         *struct {
		ValueSet []DiagnosticTag `json:"valueSet"`
	} `json:"tagSupport,omitempty"`
	VersionSupport         bool `json:"versionSupport,omitempty"`
	CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"`
	DataSupport            bool `json:"dataSupport,omitempty"`
}

PublishDiagnosticsClientCapabilities describes diagnostics capabilities.

type PublishDiagnosticsParams

type PublishDiagnosticsParams struct {
	URI         DocumentURI  `json:"uri"`
	Version     *int         `json:"version,omitempty"`
	Diagnostics []Diagnostic `json:"diagnostics"`
}

PublishDiagnosticsParams for textDocument/publishDiagnostics.

type Range

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

Range in a text document.

type ReferenceClientCapabilities

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

ReferenceClientCapabilities describes reference capabilities.

type ReferenceContext

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

ReferenceContext contains additional reference information.

type ReferenceParams

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

ReferenceParams for textDocument/references.

type RenameClientCapabilities

type RenameClientCapabilities struct {
	DynamicRegistration           bool `json:"dynamicRegistration,omitempty"`
	PrepareSupport                bool `json:"prepareSupport,omitempty"`
	PrepareSupportDefaultBehavior int  `json:"prepareSupportDefaultBehavior,omitempty"`
	HonorsChangeAnnotations       bool `json:"honorsChangeAnnotations,omitempty"`
}

RenameClientCapabilities describes rename capabilities.

type RenameOptions

type RenameOptions struct {
	PrepareProvider bool `json:"prepareProvider,omitempty"`
}

RenameOptions describes rename options.

type RenameParams

type RenameParams struct {
	TextDocumentPositionParams
	NewName string `json:"newName"`
}

RenameParams for textDocument/rename.

type RequestMessage

type RequestMessage struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      interface{}     `json:"id"`
	Method  string          `json:"method"`
	Params  json.RawMessage `json:"params,omitempty"`
}

RequestMessage represents an LSP request.

type ResponseError

type ResponseError struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

ResponseError represents an error response.

type ResponseMessage

type ResponseMessage struct {
	JSONRPC string         `json:"jsonrpc"`
	ID      interface{}    `json:"id"`
	Result  interface{}    `json:"result,omitempty"`
	Error   *ResponseError `json:"error,omitempty"`
}

ResponseMessage represents an LSP response.

type SaveOptions

type SaveOptions struct {
	IncludeText bool `json:"includeText,omitempty"`
}

SaveOptions describes save options.

type SelectionRangeClientCapabilities

type SelectionRangeClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
}

SelectionRangeClientCapabilities describes selection range capabilities.

type SemanticTokens

type SemanticTokens struct {
	ResultID string `json:"resultId,omitempty"`
	Data     []int  `json:"data"`
}

SemanticTokens represents semantic tokens.

type SemanticTokensClientCapabilities

type SemanticTokensClientCapabilities struct {
	DynamicRegistration     bool        `json:"dynamicRegistration,omitempty"`
	Requests                interface{} `json:"requests,omitempty"`
	TokenTypes              []string    `json:"tokenTypes,omitempty"`
	TokenModifiers          []string    `json:"tokenModifiers,omitempty"`
	Formats                 []string    `json:"formats,omitempty"`
	OverlappingTokenSupport bool        `json:"overlappingTokenSupport,omitempty"`
	MultilineTokenSupport   bool        `json:"multilineTokenSupport,omitempty"`
}

SemanticTokensClientCapabilities describes semantic tokens capabilities.

type SemanticTokensLegend

type SemanticTokensLegend struct {
	TokenTypes     []string `json:"tokenTypes"`
	TokenModifiers []string `json:"tokenModifiers"`
}

SemanticTokensLegend describes semantic token types and modifiers.

type SemanticTokensOptions

type SemanticTokensOptions struct {
	Legend SemanticTokensLegend `json:"legend"`
	Range  bool                 `json:"range,omitempty"`
	Full   interface{}          `json:"full,omitempty"`
}

SemanticTokensOptions describes semantic tokens options.

type SemanticTokensParams

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

SemanticTokensParams for textDocument/semanticTokens/full.

type SemanticTokensWorkspaceCapability

type SemanticTokensWorkspaceCapability struct {
	RefreshSupport bool `json:"refreshSupport,omitempty"`
}

SemanticTokensWorkspaceCapability describes semantic tokens workspace capability.

type Server

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

Server is the LSP server for Buffalo.

func NewServer

func NewServer(log *logger.Logger) *Server

NewServer creates a new LSP server.

func (*Server) ServeStdio

func (s *Server) ServeStdio(ctx context.Context) error

ServeStdio starts the server on stdin/stdout.

func (*Server) ServeTCP

func (s *Server) ServeTCP(ctx context.Context, addr string) error

ServeTCP starts the server on TCP.

type ServerCapabilities

type ServerCapabilities struct {
	TextDocumentSync                 interface{}                      `json:"textDocumentSync,omitempty"`
	CompletionProvider               *CompletionOptions               `json:"completionProvider,omitempty"`
	HoverProvider                    interface{}                      `json:"hoverProvider,omitempty"`
	SignatureHelpProvider            *SignatureHelpOptions            `json:"signatureHelpProvider,omitempty"`
	DeclarationProvider              interface{}                      `json:"declarationProvider,omitempty"`
	DefinitionProvider               interface{}                      `json:"definitionProvider,omitempty"`
	TypeDefinitionProvider           interface{}                      `json:"typeDefinitionProvider,omitempty"`
	ImplementationProvider           interface{}                      `json:"implementationProvider,omitempty"`
	ReferencesProvider               interface{}                      `json:"referencesProvider,omitempty"`
	DocumentHighlightProvider        interface{}                      `json:"documentHighlightProvider,omitempty"`
	DocumentSymbolProvider           interface{}                      `json:"documentSymbolProvider,omitempty"`
	CodeActionProvider               interface{}                      `json:"codeActionProvider,omitempty"`
	CodeLensProvider                 *CodeLensOptions                 `json:"codeLensProvider,omitempty"`
	DocumentLinkProvider             *DocumentLinkOptions             `json:"documentLinkProvider,omitempty"`
	ColorProvider                    interface{}                      `json:"colorProvider,omitempty"`
	DocumentFormattingProvider       interface{}                      `json:"documentFormattingProvider,omitempty"`
	DocumentRangeFormattingProvider  interface{}                      `json:"documentRangeFormattingProvider,omitempty"`
	DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"`
	RenameProvider                   interface{}                      `json:"renameProvider,omitempty"`
	FoldingRangeProvider             interface{}                      `json:"foldingRangeProvider,omitempty"`
	ExecuteCommandProvider           *ExecuteCommandOptions           `json:"executeCommandProvider,omitempty"`
	SelectionRangeProvider           interface{}                      `json:"selectionRangeProvider,omitempty"`
	WorkspaceSymbolProvider          interface{}                      `json:"workspaceSymbolProvider,omitempty"`
	Workspace                        *ServerWorkspaceCapabilities     `json:"workspace,omitempty"`
	SemanticTokensProvider           interface{}                      `json:"semanticTokensProvider,omitempty"`
	Experimental                     interface{}                      `json:"experimental,omitempty"`
}

ServerCapabilities describes server capabilities.

type ServerInfo

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

ServerInfo describes the server.

type ServerWorkspaceCapabilities

type ServerWorkspaceCapabilities struct {
	WorkspaceFolders *WorkspaceFoldersServerCapabilities `json:"workspaceFolders,omitempty"`
	FileOperations   *FileOperationOptions               `json:"fileOperations,omitempty"`
}

ServerWorkspaceCapabilities describes server workspace capabilities.

type SignatureHelp

type SignatureHelp struct {
	Signatures      []SignatureInformation `json:"signatures"`
	ActiveSignature *int                   `json:"activeSignature,omitempty"`
	ActiveParameter *int                   `json:"activeParameter,omitempty"`
}

SignatureHelp represents signature information.

type SignatureHelpClientCapabilities

type SignatureHelpClientCapabilities struct {
	DynamicRegistration  bool `json:"dynamicRegistration,omitempty"`
	SignatureInformation *struct {
		DocumentationFormat  []MarkupKind `json:"documentationFormat,omitempty"`
		ParameterInformation *struct {
			LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"`
		} `json:"parameterInformation,omitempty"`
		ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"`
	} `json:"signatureInformation,omitempty"`
	ContextSupport bool `json:"contextSupport,omitempty"`
}

SignatureHelpClientCapabilities describes signature help capabilities.

type SignatureHelpOptions

type SignatureHelpOptions struct {
	TriggerCharacters   []string `json:"triggerCharacters,omitempty"`
	RetriggerCharacters []string `json:"retriggerCharacters,omitempty"`
}

SignatureHelpOptions describes signature help options.

type SignatureInformation

type SignatureInformation struct {
	Label           string                 `json:"label"`
	Documentation   interface{}            `json:"documentation,omitempty"`
	Parameters      []ParameterInformation `json:"parameters,omitempty"`
	ActiveParameter *int                   `json:"activeParameter,omitempty"`
}

SignatureInformation represents the signature of something callable.

type SymbolKind

type SymbolKind int

SymbolKind represents a symbol kind.

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

type SymbolKindCapability

type SymbolKindCapability struct {
	ValueSet []SymbolKind `json:"valueSet,omitempty"`
}

SymbolKindCapability describes symbol kind capability.

type SymbolTag

type SymbolTag int

SymbolTag represents extra symbol info.

const (
	SymbolTagDeprecated SymbolTag = 1
)

type SymbolTagCapability

type SymbolTagCapability struct {
	ValueSet []SymbolTag `json:"valueSet,omitempty"`
}

SymbolTagCapability describes symbol tag capability.

type TextDocumentClientCapabilities

type TextDocumentClientCapabilities struct {
	Synchronization    *TextDocumentSyncClientCapabilities   `json:"synchronization,omitempty"`
	Completion         *CompletionClientCapabilities         `json:"completion,omitempty"`
	Hover              *HoverClientCapabilities              `json:"hover,omitempty"`
	SignatureHelp      *SignatureHelpClientCapabilities      `json:"signatureHelp,omitempty"`
	Declaration        *DeclarationClientCapabilities        `json:"declaration,omitempty"`
	Definition         *DefinitionClientCapabilities         `json:"definition,omitempty"`
	TypeDefinition     *TypeDefinitionClientCapabilities     `json:"typeDefinition,omitempty"`
	Implementation     *ImplementationClientCapabilities     `json:"implementation,omitempty"`
	References         *ReferenceClientCapabilities          `json:"references,omitempty"`
	DocumentHighlight  *DocumentHighlightClientCapabilities  `json:"documentHighlight,omitempty"`
	DocumentSymbol     *DocumentSymbolClientCapabilities     `json:"documentSymbol,omitempty"`
	CodeAction         *CodeActionClientCapabilities         `json:"codeAction,omitempty"`
	CodeLens           *CodeLensClientCapabilities           `json:"codeLens,omitempty"`
	DocumentLink       *DocumentLinkClientCapabilities       `json:"documentLink,omitempty"`
	ColorProvider      *DocumentColorClientCapabilities      `json:"colorProvider,omitempty"`
	Formatting         *DocumentFormattingClientCapabilities `json:"formatting,omitempty"`
	RangeFormatting    *DocumentRangeFormattingCapabilities  `json:"rangeFormatting,omitempty"`
	OnTypeFormatting   *DocumentOnTypeFormattingCapabilities `json:"onTypeFormatting,omitempty"`
	Rename             *RenameClientCapabilities             `json:"rename,omitempty"`
	PublishDiagnostics *PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"`
	FoldingRange       *FoldingRangeClientCapabilities       `json:"foldingRange,omitempty"`
	SelectionRange     *SelectionRangeClientCapabilities     `json:"selectionRange,omitempty"`
	SemanticTokens     *SemanticTokensClientCapabilities     `json:"semanticTokens,omitempty"`
}

TextDocumentClientCapabilities describes text document capabilities.

type TextDocumentContentChangeEvent

type TextDocumentContentChangeEvent struct {
	Range       *Range `json:"range,omitempty"`
	RangeLength int    `json:"rangeLength,omitempty"`
	Text        string `json:"text"`
}

TextDocumentContentChangeEvent describes a change in a text document.

type TextDocumentIdentifier

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

TextDocumentIdentifier identifies a text document.

type TextDocumentItem

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

TextDocumentItem is an item to transfer a text document.

type TextDocumentPositionParams

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

TextDocumentPositionParams is a parameter with text document and position.

type TextDocumentSyncClientCapabilities

type TextDocumentSyncClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	WillSave            bool `json:"willSave,omitempty"`
	WillSaveWaitUntil   bool `json:"willSaveWaitUntil,omitempty"`
	DidSave             bool `json:"didSave,omitempty"`
}

TextDocumentSyncClientCapabilities describes synchronization capabilities.

type TextDocumentSyncKind

type TextDocumentSyncKind int

TextDocumentSyncKind defines how the host syncs with the client.

const (
	TextDocumentSyncKindNone        TextDocumentSyncKind = 0
	TextDocumentSyncKindFull        TextDocumentSyncKind = 1
	TextDocumentSyncKindIncremental TextDocumentSyncKind = 2
)

type TextDocumentSyncOptions

type TextDocumentSyncOptions struct {
	OpenClose         bool                 `json:"openClose,omitempty"`
	Change            TextDocumentSyncKind `json:"change,omitempty"`
	WillSave          bool                 `json:"willSave,omitempty"`
	WillSaveWaitUntil bool                 `json:"willSaveWaitUntil,omitempty"`
	Save              *SaveOptions         `json:"save,omitempty"`
}

TextDocumentSyncOptions describes text document sync options.

type TextEdit

type TextEdit struct {
	Range   Range  `json:"range"`
	NewText string `json:"newText"`
}

TextEdit is a textual edit applicable to a text document.

type TypeDefinitionClientCapabilities

type TypeDefinitionClientCapabilities struct {
	DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
	LinkSupport         bool `json:"linkSupport,omitempty"`
}

TypeDefinitionClientCapabilities describes type definition capabilities.

type ValidationRuleInfo

type ValidationRuleInfo struct {
	Name        string
	Type        string // string, int32, double, etc.
	Description string
	Example     string
}

ValidationRuleInfo describes a Buffalo validation rule.

type VersionedTextDocumentIdentifier

type VersionedTextDocumentIdentifier struct {
	TextDocumentIdentifier
	Version int `json:"version"`
}

VersionedTextDocumentIdentifier identifies a versioned text document.

type WindowClientCapabilities

type WindowClientCapabilities struct {
	WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
	ShowMessage      *struct {
		MessageActionItem *struct {
			AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"`
		} `json:"messageActionItem,omitempty"`
	} `json:"showMessage,omitempty"`
	ShowDocument *struct {
		Support bool `json:"support,omitempty"`
	} `json:"showDocument,omitempty"`
}

WindowClientCapabilities describes window capabilities.

type WorkspaceClientCapabilities

type WorkspaceClientCapabilities struct {
	ApplyEdit              bool                               `json:"applyEdit,omitempty"`
	WorkspaceEdit          *WorkspaceEditClientCapabilities   `json:"workspaceEdit,omitempty"`
	DidChangeConfiguration *DidChangeConfigurationCapability  `json:"didChangeConfiguration,omitempty"`
	DidChangeWatchedFiles  *DidChangeWatchedFilesCapability   `json:"didChangeWatchedFiles,omitempty"`
	Symbol                 *WorkspaceSymbolCapability         `json:"symbol,omitempty"`
	ExecuteCommand         *ExecuteCommandCapability          `json:"executeCommand,omitempty"`
	WorkspaceFolders       bool                               `json:"workspaceFolders,omitempty"`
	Configuration          bool                               `json:"configuration,omitempty"`
	SemanticTokens         *SemanticTokensWorkspaceCapability `json:"semanticTokens,omitempty"`
}

WorkspaceClientCapabilities describes workspace capabilities.

type WorkspaceEdit

type WorkspaceEdit struct {
	Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"`
}

WorkspaceEdit represents changes to workspace resources.

type WorkspaceEditClientCapabilities

type WorkspaceEditClientCapabilities struct {
	DocumentChanges       bool     `json:"documentChanges,omitempty"`
	ResourceOperations    []string `json:"resourceOperations,omitempty"`
	FailureHandling       string   `json:"failureHandling,omitempty"`
	NormalizesLineEndings bool     `json:"normalizesLineEndings,omitempty"`
}

WorkspaceEditClientCapabilities describes workspace edit capabilities.

type WorkspaceFolder

type WorkspaceFolder struct {
	URI  DocumentURI `json:"uri"`
	Name string      `json:"name"`
}

WorkspaceFolder represents a workspace folder.

type WorkspaceFoldersServerCapabilities

type WorkspaceFoldersServerCapabilities struct {
	Supported           bool        `json:"supported,omitempty"`
	ChangeNotifications interface{} `json:"changeNotifications,omitempty"`
}

WorkspaceFoldersServerCapabilities describes workspace folders capabilities.

type WorkspaceSymbolCapability

type WorkspaceSymbolCapability struct {
	DynamicRegistration bool                  `json:"dynamicRegistration,omitempty"`
	SymbolKind          *SymbolKindCapability `json:"symbolKind,omitempty"`
	TagSupport          *SymbolTagCapability  `json:"tagSupport,omitempty"`
}

WorkspaceSymbolCapability describes workspace symbol capability.

Jump to

Keyboard shortcuts

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