Vixen
02b45cc4
csharp
public static class PluginDiscovery

Finding the plugins in a set of folders, and reading what they say about themselves.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A root holds one plugin per subdirectory, and a subdirectory is a plugin when it has a plugin.yaml in it. Nothing recurses further: a plugin's own lib/, runtimes/ and content folders are its business, and a scan that walked into them would find the manifest of a plugin the plugin itself vendored.

⚠ Roots are searched in order and the first id wins. The editor passes the project's folder before the user's, so a plugin checked into a project overrides the copy the user has installed globally — which is what makes "everybody on this team gets the same tools" true, and it is the same precedence a project-local tool manifest has. The copy that lost is reported rather than dropped silently.

⚠ A root that does not exist is not an error. Most projects have no Plugins/ folder, and an editor that warned about it on every launch would be teaching people to ignore its warnings.

Methods (1)

  • public static PluginCatalog Scan(params IEnumerable<string> roots)

    Reads every plugin under a set of roots.

Used by (5)

  • DiscoveryTestsVixen.Editor.Plugin.Tests
  • EditorApplicationVixen.Editor.App
  • LoadingTestsVixen.Editor.Plugin.Tests
  • PluginHostVixen.Editor.Plugin
  • SwitchingTestsVixen.Editor.Plugin.Tests