in src/ulsp/controller/scip/scip.go [162:201]
func (c *controller) StartupInfo(ctx context.Context) (ulspplugin.PluginInfo, error) {
// Set a priority for each method that this module provides.
priorities := map[string]ulspplugin.Priority{
protocol.MethodInitialize: ulspplugin.PriorityRegular,
protocol.MethodInitialized: ulspplugin.PriorityAsync,
protocol.MethodTextDocumentDidOpen: ulspplugin.PriorityRegular,
protocol.MethodTextDocumentDidChange: ulspplugin.PriorityRegular,
protocol.MethodTextDocumentDefinition: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentDeclaration: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentTypeDefinition: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentImplementation: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentReferences: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentHover: ulspplugin.PriorityHigh,
protocol.MethodTextDocumentDocumentSymbol: ulspplugin.PriorityHigh,
}
// Assign method keys to implementations.
methods := &ulspplugin.Methods{
PluginNameKey: _nameKey,
Initialize: c.initialize,
Initialized: c.initialized,
DidChange: c.didChange,
DidOpen: c.didOpen,
GotoDeclaration: c.gotoDeclaration,
GotoDefinition: c.gotoDefinition,
GotoTypeDefinition: c.gotoTypeDefinition,
GotoImplementation: c.gotoImplementation,
References: c.references,
Hover: c.hover,
DocumentSymbol: c.documentSymbol,
}
return ulspplugin.PluginInfo{
Priorities: priorities,
Methods: methods,
NameKey: _nameKey,
}, nil
}