# {py:mod}`simvx.editor.plugin` ```{py:module} simvx.editor.plugin ``` ```{autodoc2-docstring} simvx.editor.plugin :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PluginManifest ` - ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest :summary: ``` * - {py:obj}`EditorPlugin ` - ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin :summary: ``` * - {py:obj}`PluginManager ` - ```{autodoc2-docstring} simvx.editor.plugin.PluginManager :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`tool ` - ```{autodoc2-docstring} simvx.editor.plugin.tool :summary: ``` * - {py:obj}`is_tool ` - ```{autodoc2-docstring} simvx.editor.plugin.is_tool :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`log ` - ```{autodoc2-docstring} simvx.editor.plugin.log :summary: ``` * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.editor.plugin.__all__ :summary: ``` ```` ### API ````{py:data} log :canonical: simvx.editor.plugin.log :value: > 'getLogger(...)' ```{autodoc2-docstring} simvx.editor.plugin.log ``` ```` ````{py:data} __all__ :canonical: simvx.editor.plugin.__all__ :value: > ['EditorPlugin', 'PluginManifest', 'PluginManager', 'tool'] ```{autodoc2-docstring} simvx.editor.plugin.__all__ ``` ```` ````{py:function} tool(cls: type) -> type :canonical: simvx.editor.plugin.tool ```{autodoc2-docstring} simvx.editor.plugin.tool ``` ```` ````{py:function} is_tool(cls_or_instance) -> bool :canonical: simvx.editor.plugin.is_tool ```{autodoc2-docstring} simvx.editor.plugin.is_tool ``` ```` `````{py:class} PluginManifest :canonical: simvx.editor.plugin.PluginManifest ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest ``` ````{py:attribute} name :canonical: simvx.editor.plugin.PluginManifest.name :type: str :value: > 'Unnamed Plugin' ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.name ``` ```` ````{py:attribute} description :canonical: simvx.editor.plugin.PluginManifest.description :type: str :value: ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.description ``` ```` ````{py:attribute} author :canonical: simvx.editor.plugin.PluginManifest.author :type: str :value: ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.author ``` ```` ````{py:attribute} version :canonical: simvx.editor.plugin.PluginManifest.version :type: str :value: > '0.0.1' ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.version ``` ```` ````{py:attribute} script :canonical: simvx.editor.plugin.PluginManifest.script :type: str :value: > 'plugin.py' ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.script ``` ```` ````{py:attribute} icon :canonical: simvx.editor.plugin.PluginManifest.icon :type: str :value: ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.icon ``` ```` ````{py:attribute} path :canonical: simvx.editor.plugin.PluginManifest.path :type: pathlib.Path :value: > 'field(...)' ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.path ``` ```` ````{py:method} load(toml_path: pathlib.Path) -> simvx.editor.plugin.PluginManifest | None :canonical: simvx.editor.plugin.PluginManifest.load :classmethod: ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.load ``` ```` ````{py:method} to_dict() -> dict :canonical: simvx.editor.plugin.PluginManifest.to_dict ```{autodoc2-docstring} simvx.editor.plugin.PluginManifest.to_dict ``` ```` ````` `````{py:class} EditorPlugin(manifest: simvx.editor.plugin.PluginManifest, editor_state: simvx.editor.state.EditorState | None = None) :canonical: simvx.editor.plugin.EditorPlugin ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.__init__ ``` ````{py:method} activate() :canonical: simvx.editor.plugin.EditorPlugin.activate ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.activate ``` ```` ````{py:method} deactivate() :canonical: simvx.editor.plugin.EditorPlugin.deactivate ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.deactivate ``` ```` ````{py:method} add_tool_menu_item(label: str, callback: collections.abc.Callable) :canonical: simvx.editor.plugin.EditorPlugin.add_tool_menu_item ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.add_tool_menu_item ``` ```` ````{py:method} remove_tool_menu_item(label: str) :canonical: simvx.editor.plugin.EditorPlugin.remove_tool_menu_item ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.remove_tool_menu_item ``` ```` ````{py:method} add_control_to_dock(dock_name: str, control: simvx.core.Control) :canonical: simvx.editor.plugin.EditorPlugin.add_control_to_dock ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.add_control_to_dock ``` ```` ````{py:method} remove_control_from_dock(control: simvx.core.Control) :canonical: simvx.editor.plugin.EditorPlugin.remove_control_from_dock ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.remove_control_from_dock ``` ```` ````{py:method} add_custom_type(type_name: str, base_type: str, script_path: str = '', icon: str = '') :canonical: simvx.editor.plugin.EditorPlugin.add_custom_type ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.add_custom_type ``` ```` ````{py:method} remove_custom_type(type_name: str) :canonical: simvx.editor.plugin.EditorPlugin.remove_custom_type ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.remove_custom_type ``` ```` ````{py:method} add_inspector_plugin(plugin: typing.Any) :canonical: simvx.editor.plugin.EditorPlugin.add_inspector_plugin ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.add_inspector_plugin ``` ```` ````{py:method} remove_inspector_plugin(plugin: typing.Any) :canonical: simvx.editor.plugin.EditorPlugin.remove_inspector_plugin ```{autodoc2-docstring} simvx.editor.plugin.EditorPlugin.remove_inspector_plugin ``` ```` ````` `````{py:class} PluginManager(editor_state: simvx.editor.state.EditorState | None = None) :canonical: simvx.editor.plugin.PluginManager ```{autodoc2-docstring} simvx.editor.plugin.PluginManager ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.__init__ ``` ````{py:method} scan_addons(project_path: str | pathlib.Path) -> list[simvx.editor.plugin.PluginManifest] :canonical: simvx.editor.plugin.PluginManager.scan_addons ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.scan_addons ``` ```` ````{py:method} load_plugin(name: str) -> simvx.editor.plugin.EditorPlugin | None :canonical: simvx.editor.plugin.PluginManager.load_plugin ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.load_plugin ``` ```` ````{py:method} activate_plugin(name: str) -> bool :canonical: simvx.editor.plugin.PluginManager.activate_plugin ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.activate_plugin ``` ```` ````{py:method} deactivate_plugin(name: str) -> bool :canonical: simvx.editor.plugin.PluginManager.deactivate_plugin ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.deactivate_plugin ``` ```` ````{py:method} get_manifest(name: str) -> simvx.editor.plugin.PluginManifest | None :canonical: simvx.editor.plugin.PluginManager.get_manifest ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.get_manifest ``` ```` ````{py:method} get_plugin(name: str) -> simvx.editor.plugin.EditorPlugin | None :canonical: simvx.editor.plugin.PluginManager.get_plugin ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.get_plugin ``` ```` ````{py:method} list_manifests() -> list[simvx.editor.plugin.PluginManifest] :canonical: simvx.editor.plugin.PluginManager.list_manifests ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.list_manifests ``` ```` ````{py:method} list_active() -> list[str] :canonical: simvx.editor.plugin.PluginManager.list_active ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.list_active ``` ```` ````{py:method} get_errors() -> dict[str, str] :canonical: simvx.editor.plugin.PluginManager.get_errors ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.get_errors ``` ```` ````{py:method} deactivate_all() :canonical: simvx.editor.plugin.PluginManager.deactivate_all ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.deactivate_all ``` ```` ````{py:method} get_all_tool_menu_items() -> list[tuple[str, str, collections.abc.Callable]] :canonical: simvx.editor.plugin.PluginManager.get_all_tool_menu_items ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.get_all_tool_menu_items ``` ```` ````{py:method} get_all_custom_types() -> list[tuple[str, str]] :canonical: simvx.editor.plugin.PluginManager.get_all_custom_types ```{autodoc2-docstring} simvx.editor.plugin.PluginManager.get_all_custom_types ``` ```` `````