Clean up codebase and improve file loading

- Moved plugins to proper sub groups (autopairs, code_minimap, colorize, commentzar, info_bar, markdown_preview, prettify_json, search_replace, tabs_bar, telescope, toggle_source_view, lsp_client)
- Add filter_out_loaded_files to prevent opening already-loaded files
- Add INDEPENDENT source view state
- Fix cursor scroll position on buffer switch
- Fix signal blocking during file load
- Fix word boundary in completion provider
- Refactor code events into single events module
This commit is contained in:
2026-03-08 00:51:28 -06:00
parent a52d5243ab
commit 99dc917de3
229 changed files with 8809 additions and 756 deletions

View File

@@ -0,0 +1,102 @@
# Python imports
# Lib imports
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
# Application imports
from core.widgets.webkit.webkit_ui import WebkitUI
from .mixins.markdown_preview_mixin import MarkdownPreviewMixin
class MarkdownPreview(Gtk.Popover, MarkdownPreviewMixin):
def __init__(self):
super(MarkdownPreview, self).__init__()
self.can_hide: bool = True
self.fpath: str = ""
self.is_preview_paused: bool = True # True by default b/c started hidden
self._setup_styling()
self._setup_signals()
self._load_widgets()
def _setup_styling(self):
ctx = self.get_style_context()
ctx.add_class("markdown-preview")
self.set_modal(False)
self.set_can_focus(False)
self.set_transitions_enabled(False)
self.set_size_request(480, 720)
self.override_background_color(
Gtk.StateFlags.NORMAL,
Gdk.RGBA(0, 0, 0, 0.0)
)
self.set_constrain_to(
Gtk.PopoverConstraint.WINDOW
)
def _setup_signals(self):
self.connect("hide", self._handle_hide)
self.connect("show", self._handle_show)
def _load_widgets(self):
box = Gtk.Box()
bttn_box = Gtk.ButtonBox()
scrolled_win = Gtk.ScrolledWindow()
viewport = Gtk.Viewport()
self._markdown_view = WebkitUI()
self.start_stop_bttn = Gtk.ToggleButton()
settings_bttn = Gtk.Button()
self.start_stop_bttn.set_label("gtk-media-pause")
self.start_stop_bttn.set_use_stock(True)
settings_bttn.set_image(
Gtk.Image.new_from_stock(
"gtk-justify-fill", Gtk.IconSize.BUTTON
)
)
self._markdown_view.set_vexpand(True)
box.set_orientation(Gtk.Orientation.VERTICAL)
self.start_stop_bttn.connect("clicked", self._tggle_preview_updates)
settings_bttn.connect("clicked", self._handle_settings)
bttn_box.pack_end(self.start_stop_bttn, expand = False, fill = False, padding = 1)
bttn_box.pack_end(settings_bttn, expand = False, fill = False, padding = 1)
viewport.add(self._markdown_view)
scrolled_win.add(viewport)
box.add(bttn_box)
box.add(scrolled_win)
self.add(box)
box.show_all()
def _handle_hide(self, widget):
if self.can_hide:
self.is_preview_paused = True
return False
return True
def _handle_show(self, widget):
self.can_hide = False
self.is_preview_paused = self.start_stop_bttn.get_active()
def _tggle_preview_updates(self, widget):
self.is_preview_paused = not self.is_preview_paused
def _handle_settings(self, widget):
...