Refactor plugin event API: rename message* to emit* and requests_ui_element to request_ui_element

This commit is contained in:
2026-02-28 19:48:41 -06:00
parent 72fcccc8a9
commit a52d5243ab
32 changed files with 208 additions and 90 deletions

View File

@@ -37,7 +37,7 @@ class Plugin(PluginCode):
]
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...

View File

@@ -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):

View File

@@ -34,7 +34,7 @@ class Plugin(PluginCode):
binding = "<Shift><Control>c"
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...

View File

@@ -34,7 +34,7 @@ class Plugin(PluginCode):
binding = "<Control>slash"
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...

View File

@@ -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):
...

View File

@@ -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):
...

View File

@@ -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):
...

View File

@@ -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):
...

View File

@@ -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):
...

View File

@@ -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):

View File

@@ -24,7 +24,8 @@ class Plugin(PluginCode):
event = Event_Factory.create_event(
"get_file", buffer = buffer
)
self.message_to("files", event)
self.emit_to("files", event)
if not event.response.get_location(): return
markdown_preview.fpath = event.response.get_location().get_path()
@@ -38,7 +39,7 @@ class Plugin(PluginCode):
markdown_preview._do_markdown_translate(event.buffer)
def load(self):
separator_right = self.requests_ui_element("separator-right")
separator_right = self.request_ui_element("separator-right")
markdown_preview.set_relative_to(separator_right)
event = Event_Factory.create_event("register_command",
@@ -48,7 +49,7 @@ class Plugin(PluginCode):
binding = "<Shift><Control>m"
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...

View File

@@ -37,17 +37,17 @@ class Plugin(PluginCode):
)
def load(self):
footer = self.requests_ui_element("footer-container")
footer = self.request_ui_element("footer-container")
footer.add( search_replace )
event = Event_Factory.create_event("register_command",
command_name = "search_replace",
command = Handler,
binding_mode = "released",
binding = "<Control>f"
binding = ["<Control>f", "<Control>r"]
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...
@@ -62,4 +62,5 @@ class Handler:
):
logger.debug("Command: Search/Replace")
search_replace.last_key = args[0]
search_replace.hide() if search_replace.is_visible() else search_replace.show()

View File

@@ -19,9 +19,10 @@ class SearchReplace(Gtk.Grid, SearchReplaceMixin):
def __init__(self):
super(SearchReplace, self).__init__()
self.active_view = None
self.highlight_tag = None
self.matches: list[tuple] = []
self.active_view = None
self.highlight_tag: Gtk.TextTag = None
self.matches: list[tuple] = []
self.last_key: str = None
self._setup_styling()
self._setup_signals()
@@ -112,7 +113,13 @@ class SearchReplace(Gtk.Grid, SearchReplaceMixin):
def _handle_show(self, widget):
self.find_entry.set_text("")
self.find_entry.grab_focus()
if not self.last_key == "r":
self.find_entry.grab_focus()
return
self.replace_entry.grab_focus()
# Fake focus call to prompt search
self._find_entry_focus_in_event(self.find_entry, None)
def _handle_hide(self, widget):
if not self.active_view: return

View File

@@ -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)

View File

@@ -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):

View File

@@ -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):

View File

@@ -0,0 +1,3 @@
"""
Pligin Module
"""

View File

@@ -0,0 +1,3 @@
"""
Pligin Package
"""

View File

@@ -0,0 +1,7 @@
{
"name": "Telescope",
"author": "ITDominator",
"version": "0.0.1",
"support": "",
"requests": {}
}

View File

@@ -0,0 +1,53 @@
# Python imports
# Lib imports
# Application imports
from libs.event_factory import Event_Factory, Code_Event_Types
from plugins.plugin_types import PluginCode
from .telescope import Telescope
telescope = Telescope()
class Plugin(PluginCode):
def __init__(self):
super(Plugin, self).__init__()
def _controller_message(self, event: Code_Event_Types.CodeEvent):
if isinstance(event, Code_Event_Types.FocusedViewEvent):
...
def load(self):
window = self.request_ui_element("main-window")
telescope.set_transient_for(window)
event = Event_Factory.create_event("register_command",
command_name = "telescope",
command = Handler,
binding_mode = "released",
binding = "<Control>b"
)
self.emit_to("source_views", event)
def run(self):
...
class Handler:
@staticmethod
def execute(
view: any,
*args,
**kwargs
):
logger.debug("Command: Telescope")
telescope.hide() if telescope.is_visible() else telescope.show()

View File

@@ -0,0 +1,55 @@
# Python imports
# Lib imports
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GLib
# Application imports
class Telescope(Gtk.Window):
def __init__(self):
super(Telescope, self).__init__(Gtk.WindowType.POPUP)
self._setup_styling()
self._setup_signals()
self._subscribe_to_events()
self._load_widgets()
def _setup_styling(self):
self.set_decorated(False)
self.set_modal(False)
self.set_destroy_with_parent(True)
self.set_skip_pager_hint(True)
self.set_skip_taskbar_hint(True)
self.set_size_request(620, 480)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
def _setup_signals(self):
# self.connect("page-added", self._page_added)
...
def _subscribe_to_events(self):
...
def _load_widgets(self):
main_box = Gtk.Box()
left_box = Gtk.Box()
list_box = Gtk.ListBox()
search_entry = Gtk.SearchEntry()
left_box.set_orientation(Gtk.Orientation.VERTICAL)
list_box.set_vexpand(True)
list_box.set_size_request(120, -1)
left_box.add(list_box)
left_box.add(search_entry)
main_box.add(left_box)
self.add(main_box)
main_box.show_all()

View File

@@ -24,7 +24,7 @@ class Plugin(PluginCode):
binding = "<Shift><Control>h"
)
self.message_to("source_views", event)
self.emit_to("source_views", event)
def run(self):
...