Vixen
02b45cc4
csharp
public sealed class ScriptsModule

The editor's own tier-three producer: a project's Editor/ folder.

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

Remarks

Doc 36 § D2's third producer and § P5's whole phase. The other two are a source generator at compile time and a plugin's Activate at load time; this is the one that runs when a project opens, and it is the only one whose input is a file somebody is typing into right now.

⚠ A module, so Vixen.Editor.App never references it. It asks the host for the project and for the plugin host, registers a rebuild verb, a panel and a per-frame drain, and is named in EditorModules beside Terrain and Blockout. The assembly hosting a C# compiler being reachable from the editor's application would be P3's exit list undone for the sake of a feature that is, by construction, optional.

⚠ The watcher is drained on the frame thread, not raised on the platform's. FileWatcher is pull-based for exactly this reason — compiling and loading an assembly from a file-system callback would run a plugin's Activate on whichever thread the OS chose, and every registration it makes is the shell's.

Fields and properties (5)

  • public const string ModuleId

    What the host activates it under.

  • public const string ModuleName

    What a plugin-management panel calls it.

  • public const string PanelId

    The panel that lists what the compiler said.

  • public const string RebuildCommand

    The verb that compiles the folder again.

  • public ScriptState State

    What the last build produced, for a panel and for a test.

Methods (3)

  • public void Activate(PluginContext context)

    Adds everything the plugin contributes.

  • public void Deactivate()

    Releases what the registration scope does not know about.

  • public void Dispose()

Used by (2)

  • EditorModulesVixen.Editor.Host
  • EditorScriptWorkflowTestsVixen.Editor.App.Tests