func()

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
}