public record class PluginManifestWhat a plugin says about itself, before any of its code has run.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Everything the loader needs to refuse a plugin is here, in a file it can read without loading an assembly. That is the whole reason a manifest exists rather than an attribute on the entry type: an incompatible plugin, a plugin whose dependency is missing and a plugin the user switched off all have to be dealt with before the editor maps somebody else's IL into its own process.
It is a [DataContract] read by the same YAML binder as a .meta file and a settings asset, so an unknown key is ignored rather than fatal — a manifest written for a later editor still loads on this one, which is the behaviour that lets a plugin ship a single file for two versions.
⚠ The file is plugin.yaml and its directory is the plugin. Not a search of the whole tree for assemblies: a folder either declares itself or is not a plugin, and an editor that loaded whatever DLLs it found under a directory the user can write to is an editor with an interesting security model.
Fields and properties (12)
public const string FileNameWhat the file is called, in every directory that has one.
public string IdWhat everything refers to the plugin by: com.example.terrain.
public string NameWhat it is called on screen.
public Version VersionThe plugin's own version, which is the author's to number.
public Version ApiWhich version of the editor's contract it was built against.
public string AssemblyThe file holding its code, relative to the plugin's directory.
public string EntryPointThe full name of the type implementing IEditorPlugin, or empty to find it.
public string DescriptionA sentence about what it does, shown in the plugin list.
public string AuthorWho wrote it.
public List<string> DependenciesThe ids of plugins that have to be activated before this one.
public bool EnabledWhether to load it at all.
public string AssemblyFileNameThe assembly file to look for, which is Assembly or a name from the id.
Methods (2)
public IReadOnlyList<string> Problems()What is wrong with this manifest, if anything.
public override string ToString()Returns a string that represents the current object.
Used by (13)
- DeclaredContributionsVixen.Editor.App
- EditorApplicationVixen.Editor.App
- LoadedPluginVixen.Editor.Plugin
- ManifestTestsVixen.Editor.Plugin.Tests
- OrderTestsVixen.Editor.Plugin.Tests
- PluginContextVixen.Editor.Plugin
- PluginDescriptorVixen.Editor.Plugin
- PluginDiscoveryVixen.Editor.Plugin
- PluginFolderVixen.Editor.App.Tests
- PluginHostVixen.Editor.Plugin
- PluginManagerViewVixen.Editor.App
- PluginOrderVixen.Editor.Plugin
- TypeRegistrationVixen.Editor.Plugin