code: func collectPlugins(settings environment.EnvSettings) (Providers, error) {
  	plugins, err := plugin.FindPlugins(settings.PluginDirs())
  	if err != nil {
  		return nil, err
  	}
  	var result Providers
  	for _, plugin := range plugins {
  		for _, downloader := range plugin.Metadata.Downloaders {
  			result = append(result, Provider{
  				Schemes: downloader.Protocols,
  				New: newPluginGetter(
  					downloader.Command,
  					settings,
  					plugin.Metadata.Name,
  					plugin.Dir,
  				),
  			})
  		}
  	}
  	return result, nil
  }
docs: // collectPlugins scans for getter plugins.
  // This will load plugins according to the environment.