diff --git a/plugins/code/autopairs/plugin.py b/plugins/code/autopairs/plugin.py index 164500c..d034cea 100644 --- a/plugins/code/autopairs/plugin.py +++ b/plugins/code/autopairs/plugin.py @@ -37,7 +37,7 @@ class Plugin(PluginCode): ] ) - self.message_to("source_views", event) + self.emit_to("source_views", event) def run(self): ... diff --git a/plugins/code/code_minimap/plugin.py b/plugins/code/code_minimap/plugin.py index a37db78..2b13d74 100644 --- a/plugins/code/code_minimap/plugin.py +++ b/plugins/code/code_minimap/plugin.py @@ -25,7 +25,7 @@ class Plugin(PluginCode): code_minimap.set_smini_view(event.view) def load(self): - editors_container = self.requests_ui_element("editors-container") + editors_container = self.request_ui_element("editors-container") editors_container.add( code_minimap ) def run(self): diff --git a/plugins/code/completers/example_completer/plugin.py b/plugins/code/completers/example_completer/plugin.py index 479fdd0..d95e8a4 100644 --- a/plugins/code/completers/example_completer/plugin.py +++ b/plugins/code/completers/example_completer/plugin.py @@ -33,7 +33,7 @@ class Plugin(PluginCode): provider = self.provider, language_ids = [] ) - self.message_to("completion", event) + self.emit_to("completion", event) def run(self): ... diff --git a/plugins/code/completers/lsp_completer/plugin.py b/plugins/code/completers/lsp_completer/plugin.py index b37a718..379dd73 100644 --- a/plugins/code/completers/lsp_completer/plugin.py +++ b/plugins/code/completers/lsp_completer/plugin.py @@ -33,7 +33,7 @@ class Plugin(PluginCode): provider = self.provider, language_ids = [] ) - self.message_to("completion", event) + self.emit_to("completion", event) def run(self): ... diff --git a/plugins/code/completers/snippets_completer/plugin.py b/plugins/code/completers/snippets_completer/plugin.py index 45f7f17..b303184 100644 --- a/plugins/code/completers/snippets_completer/plugin.py +++ b/plugins/code/completers/snippets_completer/plugin.py @@ -33,7 +33,7 @@ class Plugin(PluginCode): provider = self.provider, language_ids = [] ) - self.message_to("completion", event) + self.emit_to("completion", event) def run(self): ... diff --git a/plugins/code/completers/words_completer/plugin.py b/plugins/code/completers/words_completer/plugin.py index 937cb00..2db9079 100644 --- a/plugins/code/completers/words_completer/plugin.py +++ b/plugins/code/completers/words_completer/plugin.py @@ -33,7 +33,7 @@ class Plugin(PluginCode): provider = self.provider, language_ids = [] ) - self.message_to("completion", event) + self.emit_to("completion", event) def run(self): ... diff --git a/plugins/code/info_bar/plugin.py b/plugins/code/info_bar/plugin.py index 594569b..5fe0b15 100644 --- a/plugins/code/info_bar/plugin.py +++ b/plugins/code/info_bar/plugin.py @@ -25,7 +25,7 @@ class Plugin(PluginCode): info_bar_widget._set_info_labels(*event.info) def load(self): - header = self.requests_ui_element("header-container") + header = self.request_ui_element("header-container") header.add( info_bar_widget ) def run(self): diff --git a/plugins/code/tabs_bar/plugin.py b/plugins/code/tabs_bar/plugin.py index bc3f934..2cec4d4 100644 --- a/plugins/code/tabs_bar/plugin.py +++ b/plugins/code/tabs_bar/plugin.py @@ -21,7 +21,7 @@ class Plugin(PluginCode): def load(self): tabs_controller = TabsController() - code_container = self.requests_ui_element("code-container") + code_container = self.request_ui_element("code-container") self.register_controller("tabs", tabs_controller) diff --git a/plugins/code/tabs_bar/tabs_controller.py b/plugins/code/tabs_bar/tabs_controller.py index 42ef088..a30ac64 100644 --- a/plugins/code/tabs_bar/tabs_controller.py +++ b/plugins/code/tabs_bar/tabs_controller.py @@ -22,7 +22,7 @@ class TabsController(ControllerBase): super(TabsController, self).__init__() self.tabs_widget: TabsWidget = TabsWidget() - self.tabs_widget.message = self.message + self.tabs_widget.emit = self.emit def _controller_message(self, event: Code_Event_Types.CodeEvent): diff --git a/plugins/code/tabs_bar/tabs_widget.py b/plugins/code/tabs_bar/tabs_widget.py index 5d13c71..d2cee4a 100644 --- a/plugins/code/tabs_bar/tabs_widget.py +++ b/plugins/code/tabs_bar/tabs_widget.py @@ -56,7 +56,7 @@ class TabsWidget(Gtk.Notebook): buffer = file.buffer ) - self.message(event) + self.emit(event) def _switch_page(self, notebook, page_widget, page_num): tab = self.get_tab_label(page_widget) @@ -65,7 +65,7 @@ class TabsWidget(Gtk.Notebook): buffer = tab.file.buffer ) - self.message(event) + self.emit(event) def _bind_tab_menu(self, tab, page_widget): def do_context_menu(tab, eve, page_widget): diff --git a/plugins/code/toggle_source_view/plugin.py b/plugins/code/toggle_source_view/plugin.py index 8db8b70..ff50e86 100644 --- a/plugins/code/toggle_source_view/plugin.py +++ b/plugins/code/toggle_source_view/plugin.py @@ -24,7 +24,7 @@ class Plugin(PluginCode): binding = "h" ) - self.message_to("source_views", event) + self.emit_to("source_views", event) def run(self): ... diff --git a/plugins/ui/template/plugin.py b/plugins/ui/template/plugin.py index fd843eb..bd7fcb6 100644 --- a/plugins/ui/template/plugin.py +++ b/plugins/ui/template/plugin.py @@ -21,7 +21,7 @@ class Plugin(PluginUI): ... def load(self): - ui_element = self.requests_ui_element("header-container") + ui_element = self.request_ui_element("header-container") ui_element.add( self.generate_plugin_element() ) def run(self): diff --git a/src/core/window.py b/src/core/window.py index ea1a123..fc03ad8 100644 --- a/src/core/window.py +++ b/src/core/window.py @@ -76,6 +76,8 @@ class Window(Gtk.ApplicationWindow): event_system.subscribe("load-interactive-debug", self._load_interactive_debug) def _load_widgets(self): + widget_registery.expose_object("main-window", self) + if settings_manager.is_debug(): self.set_interactive_debugging(True) diff --git a/src/libs/controllers/emit_dispatcher.py b/src/libs/controllers/emit_dispatcher.py index 0a19427..878ce67 100644 --- a/src/libs/controllers/emit_dispatcher.py +++ b/src/libs/controllers/emit_dispatcher.py @@ -24,3 +24,6 @@ class EmitDispatcher: def emit_to(self, controller: str, event: BaseEvent): self.message_to(controller, event) + + def emit_to_selected(self, names: list[str], event: BaseEvent): + self.message_to_selected(names, event) diff --git a/src/plugins/controller.py b/src/plugins/controller.py index c3888fa..d09431b 100644 --- a/src/plugins/controller.py +++ b/src/plugins/controller.py @@ -56,8 +56,8 @@ class PluginsController(ControllerBase, PluginsControllerMixin, PluginReloadMixi locations.append(path) for file in os.listdir(path): _path = os.path.join(path, file) - if os.path.isdir(_path): - self._collect_search_locations(_path, locations) + if not os.path.isdir(_path): continue + self._collect_search_locations(_path, locations) def _load_plugins( self, @@ -150,12 +150,10 @@ class PluginsController(ControllerBase, PluginsControllerMixin, PluginReloadMixi def create_plugin_context(self): plugin_context: PluginContext = PluginContext() - plugin_context.requests_ui_element: callable = self.requests_ui_element - plugin_context.message: callable = self.message - plugin_context.message_to: callable = self.message_to - plugin_context.message_to_selected: callable = self.message_to_selected - plugin_context.emit: callable = event_system.emit - plugin_context.emit_and_await: callable = event_system.emit_and_await + plugin_context.request_ui_element: callable = self.request_ui_element + plugin_context.emit: callable = self.emit + plugin_context.emit_to: callable = self.emit_to + plugin_context.emit_to_selected: callable = self.emit_to_selected plugin_context.register_controller: callable = self.register_controller return plugin_context diff --git a/src/plugins/plugin_context.py b/src/plugins/plugin_context.py index 0841392..3957c97 100644 --- a/src/plugins/plugin_context.py +++ b/src/plugins/plugin_context.py @@ -18,26 +18,21 @@ class PluginContext: def __init__(self): super(PluginContext, self).__init__() - def requests_ui_element(self, element_id: str): - raise PluginContextException("Plugin Context 'requests_ui_element' must be overridden...") def _controller_message(self, event: BaseEvent): raise PluginContextException("Plugin Context '_controller_message' must be overridden...") - def message(self, event: BaseEvent): - raise PluginContextException("Plugin Context 'message' must be overridden...") + def request_ui_element(self, element_id: str): + raise PluginContextException("Plugin Context 'request_ui_element' must be overridden...") - def message_to(self, name: str, event: BaseEvent): - raise PluginContextException("Plugin Context 'message_to' must be overridden...") - - def message_to_selected(self, names: list[str], event: BaseEvent): - raise PluginContextException("Plugin Context 'message_to_selected' must be overridden...") - - def emit(self, event_type: str, data: tuple = ()): + def emit(self, event: BaseEvent): raise PluginContextException("Plugin Context 'emit' must be overridden...") - def emit_and_await(self, event_type: str, data: tuple = ()): - raise PluginContextException("Plugin Context 'emit_and_await' must be overridden...") + def emit_to(self, name: str, event: BaseEvent): + raise PluginContextException("Plugin Context 'emit_to' must be overridden...") + + def emit_to_selected(self, names: list[str], event: BaseEvent): + raise PluginContextException("Plugin Context 'emit_to_selected' must be overridden...") def register_controller(self, name: str, controller): raise PluginContextException("Plugin Context 'register_controller' must be overridden...") diff --git a/src/plugins/plugin_types/plugin_base.py b/src/plugins/plugin_types/plugin_base.py index 1b1b97a..92a819c 100644 --- a/src/plugins/plugin_types/plugin_base.py +++ b/src/plugins/plugin_types/plugin_base.py @@ -30,20 +30,14 @@ class PluginBase: def run(self): raise PluginBaseException("Plugin Base 'run' must be overriden by Plugin") - def requests_ui_element(self, element_id: str): - raise PluginBaseException("Plugin Base 'requests_ui_element' must be overriden by Plugin") + def request_ui_element(self, element_id: str): + raise PluginBaseException("Plugin Base 'request_ui_element' must be overriden by Plugin") - def message(self, event: BaseEvent): - raise PluginBaseException("Plugin Base 'message' must be overriden by Plugin") - - def message_to(self, name: str, event: BaseEvent): - raise PluginBaseException("Plugin Base 'message_to' must be overriden by Plugin") - - def message_to_selected(self, names: list[str], event: BaseEvent): - raise PluginBaseException("Plugin Base 'message_to_selected' must be overriden by Plugin") - - def emit(self, event_type: str, data: tuple = ()): + def emit(self, event: BaseEvent): raise PluginBaseException("Plugin Base 'emit' must be overriden by Plugin") - def emit_and_await(self, event_type: str, data: tuple = ()): - raise PluginBaseException("Plugin Base 'emit_and_await' must be overriden by Plugin") + def emit_to(self, name: str, event: BaseEvent): + raise PluginBaseException("Plugin Base 'emit_to' must be overriden by Plugin") + + def emit_to_selected(self, names: list[str], event: BaseEvent): + raise PluginBaseException("Plugin Base 'emit_to_selected' must be overriden by Plugin") diff --git a/src/plugins/plugin_types/plugin_code.py b/src/plugins/plugin_types/plugin_code.py index 26e0983..95aa9e9 100644 --- a/src/plugins/plugin_types/plugin_code.py +++ b/src/plugins/plugin_types/plugin_code.py @@ -31,17 +31,17 @@ class PluginCode(PluginBase): def run(self): raise PluginCodeException("Plugin Code 'run' must be overriden by Plugin") - def requests_ui_element(self, element_id: str): - return self.plugin_context.requests_ui_element(element_id) - - def message(self, event: BaseEvent): - return self.plugin_context.message(event) - - def message_to(self, name: str, event: BaseEvent): - return self.plugin_context.message_to(name, event) - - def message_to_selected(self, names: list[str], event: BaseEvent): - return self.plugin_context.message_to_selected(names, event) - def register_controller(self, name: str, controller): return self.plugin_context.register_controller(name, controller) + + def request_ui_element(self, element_id: str): + return self.plugin_context.request_ui_element(element_id) + + def emit(self, event: BaseEvent): + return self.plugin_context.emit(event) + + def emit_to(self, name: str, event: BaseEvent): + return self.plugin_context.emit_to(name, event) + + def emit_to_selected(self, names: list[str], event: BaseEvent): + return self.plugin_context.emit_to_selected(names, event) diff --git a/src/plugins/plugin_types/plugin_ui.py b/src/plugins/plugin_types/plugin_ui.py index f5e3534..f09e09f 100644 --- a/src/plugins/plugin_types/plugin_ui.py +++ b/src/plugins/plugin_types/plugin_ui.py @@ -31,20 +31,14 @@ class PluginUI(PluginBase): def run(self): raise PluginCodeException("Plugin UI 'run' must be overriden by Plugin") - def requests_ui_element(self, element_id: str): - return self.plugin_context.requests_ui_element(element_id) + def request_ui_element(self, element_id: str): + return self.plugin_context.request_ui_element(element_id) - def message(self, event: BaseEvent): - return self.plugin_context.message(event) + def emit(self, event: BaseEvent): + return self.plugin_context.emit(event) - def message_to(self, name: str, event: BaseEvent): - return self.plugin_context.message_to(name, event) + def emit_to(self, name: str, event: BaseEvent): + return self.plugin_context.emit_to(name, event) - def message_to_selected(self, names: list[str], event: BaseEvent): - return self.plugin_context.message_to_selected(names, event) - - def emit(self, event_type: str, data: tuple = ()): - self.plugin_context.emit(event_type, data) - - def emit_and_await(self, event_type: str, data: tuple = ()): - self.plugin_context.emit_and_await(event_type, data) + def emit_to_selected(self, names: list[str], event: BaseEvent): + return self.plugin_context.emit_to_selected(names, event) diff --git a/src/plugins/plugins_controller_mixin.py b/src/plugins/plugins_controller_mixin.py index 565d04f..2dc72be 100644 --- a/src/plugins/plugins_controller_mixin.py +++ b/src/plugins/plugins_controller_mixin.py @@ -13,7 +13,7 @@ class InvalidPluginException(Exception): class PluginsControllerMixin: - def requests_ui_element(self, target_id: str): + def request_ui_element(self, target_id: str): if not target_id in widget_registery.objects: raise InvalidPluginException('Unknown UI "target_id" given in requests.')