in src/ulsp/controller/ulsp-daemon/ulsp_daemon.go [174:209]
func (c *controller) registerSessionPlugins(ctx context.Context) error {
s, err := c.sessions.GetFromContext(ctx)
if err != nil {
return fmt.Errorf("getting session from context: %w", err)
}
enabledPlugins := []ulspplugin.PluginInfo{}
for _, plugin := range c.pluginsAll {
if plugin == nil {
continue
}
info, err := plugin.StartupInfo(ctx)
if err != nil {
return fmt.Errorf("getting plugin startup info: %w", err)
}
if info.RelevantRepos != nil {
// Skip if not relevant to this session's repo.
if _, ok := info.RelevantRepos[s.Monorepo]; !ok {
continue
}
}
if isEnabled := c.pluginConfig[info.NameKey]; isEnabled {
c.logger.Infow("plugin registration", "plugin", info.NameKey, "status", "enabled")
enabledPlugins = append(enabledPlugins, info)
} else {
c.logger.Infow("plugin registration", "plugin", info.NameKey, "status", "disabled")
}
}
c.pluginMethods[s.UUID], err = mapper.PluginInfoToRuntimePrioritizedMethods(enabledPlugins)
if err != nil {
return fmt.Errorf("prioritizing plugin methods: %w", err)
}
return nil
}